给你写的launchpad430--UART
来源:互联网 发布:php 商城分销系统源码 编辑:程序博客网 时间:2024/05/08 19:28
技术说明
因此我们在设计电路的时候,只需要连接这两个引脚到MAX3232电平转换芯片上就可以进行通信。
在通信之前我们应做一些设置,例如管脚、时钟等。
波特率设置技巧
查看datasheet:可以在chapter15找到下表
图1
例如:我们设置SMCLK、MCLK = 1MHz,UARTA输入时钟为SMCLK,波特率 = 115200,开启读中断。
管脚设置
查看数据手册,连接UARTA的管脚是P1.1,P1.2
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD P1SEL2 = BIT1 + BIT2;
时钟及波特率设置
查看数据手册,找到设置波特率的表格,如上图1所示:
UCA0CTL1 |= UCSSEL_2; // SMCLK UCA0BR0 = 8; // 1MHz 115200 UCA0BR1 = 0; // 1MHz 115200 UCA0MCTL = UCBRS2 + UCBRS1; // Modulation UCBRSx = 6
初始化及中断设置
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
完整例程
#include <msp430.h>int main(void){ WDTCTL = WDTPW + WDTHOLD; // Stop WDT if (CALBC1_1MHZ==0xFF) // If calibration constant erased { while(1); // do not load, trap CPU!! } DCOCTL = 0; // Select lowest DCOx and MODx settings BCSCTL1 = CALBC1_1MHZ; // Set DCO DCOCTL = CALDCO_1MHZ; // 以上是前一篇所介绍 P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD P1SEL2 = BIT1 + BIT2; UCA0CTL1 |= UCSSEL_2; // SMCLK UCA0BR0 = 8; // 1MHz 115200 UCA0BR1 = 0; // 1MHz 115200 UCA0MCTL = UCBRS2 + UCBRS1; // Modulation UCBRSx = 6 UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled}// Echo back RXed character, confirm TX buffer is ready first#pragma vector=USCIAB0RX_VECTOR__interrupt void USCI0RX_ISR(void){ while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready? UCA0TXBUF = UCA0RXBUF; // TX -> RXed character}
函数扩展
编写个发送字符的函数
void SendChar(unsigned char c_data){ UCA0TXBUF = c_data; while(!(IFG2&UCA0TXIFG));}
- 给你写的launchpad430--UART
- 给你写的launchpad430--CLK
- 给你写的launchpad430--FLASH
- 给你写的launchpad430--常用资料
- 给你写的launchpad430--IAR头文件
- 给你写的launchpad430--TIMER--系列1
- 给你写的launchpad430--TIMER--系列2
- 给你写的launchpad430--18B20--系列1
- 如何写uart驱动?
- UART烧写FLASH
- 你写的代码很好?那OK,我给你个差评。
- uart串口实现回写
- 耀眼是给你的词语我写不出来愚昧的字形容你
- MM,这是我第一次给你写的Blog,用一首《那一夜》开始吧
- 一般JS的做法有两种 我给你写一下,稍等,一个是异步,一个是事件
- 假如给你一台陌生的Linux终端,你需要多久才能开始写程序
- 写它,就是给你看得
- 给你生活的忠告:
- 国内外互联网巨头
- 3GPP
- 微信公众平台开发(65) 微博树洞
- Ubuntu下使用局域网中windows 共享打印机
- ubuntu 13.04 升级至13.10
- 给你写的launchpad430--UART
- ICSharpCode.SharpZipLib生成tar、tar.gz
- Android Studio 离线安装 Gradle 的方法
- Cloud Foundry中Stager组件的源码分析
- 关于JAVA中Hibernate的关键字trans…
- Map.Entry和Map.entrySet的用法
- Eclipse中查找接口实现类快捷键
- 自定义Delegate 传值
- JAVA中serialVersionUID