msp430F123使用串口通讯设置
1、MSP430F123串口的P3.4 P3.5可以设置未标准串口,把以前使用MSP430F149串口代码拿过来发现根本用不了。在研究了相关手册资料后,实现自发自收OK。
2、首先新建一个工程,做一些基本设置
1) FETDebugger -->setup-->connection选择 USB连接方式
2)Debugger下的-->setuo-->Driver 选 FET Debugger
3) General Options -->Target --> Device -->点按钮选 MSP430F123



3、管脚定义:
因为P3口没有中断要通过P3SEL和P3DIR设置后RX,TX才能生效。
P3.4 P3.5 提供了一组标准的USRT0的通讯接口。

4、因为以前用MSP430F149做开发,于是把晶振代码拿来直接用,结果发现完全不好用,说明二者还是有些区别。
void ClockInit(void)
{ unsigned char i;
BCSCTL1 = XTS + DIVA_0; //
do
{
IFG1 &= ~OFIFG;
for (i = 0xFF; i > 0; i--); //等待数据稳定
}
while ((IFG1 & OFIFG));
BCSCTL2 = SELM_3 + SELS; // MCLK= LFXT1 (safe)
for(i=0Xff;i>0;i--)
_NOP();
}

5、波特率的设置也是比较有特点:
代码不赘述,有几个点注意一下:
1: ME2 |= UTXE0 + URXE0; //注意这里是ME2
2: IE2 |= URXIE0; //注意这里是IE2
3: 波特率的计算: 本例是4M --9600bps
4M/9600 = 416.666
所以根据公式(详情其他文字介绍)
校正数据可以用 0x89(不唯一)

6、编写响应代码:
当收到串口数据时,进入响应函数,然后把RX缓存数据直接放到TX缓冲,实现数据的自发自收。
这里注意 : 用的是IFG2

7、代码编写完成后,IAR通过USB'烧写器 写入芯片。
打开串口精灵,设好波特率和串口号,发送数据给串口,如果能够收到同样数据的响应,说明OK了。
