先看看串口的接口,
因为接口是复用的,可以作为IO也可以作为外设接口,所以要在P3SEL做一下设置。
接下来看看串口的设置流程,这点这个430的datasheet说的很清楚,我也很推荐这样的datasheet说明方式,不像有的公司,介绍了很多寄存器,但是这个功能怎么用,从开始初始化,设置寄存器,然后启动该应用没有介绍。这点,应该给MSP430单片机掌声,还有就是TI公司提供了一些简单的例程,可以学习一下,也挺方便大家使用430单片机的,这点蛮好的啊。
这个图片里面的5步就是告诉你怎么设置一个串口,很方便的吧,你只要对照这5步来,就行了。很方便的。
我们需要完成的工作就是第二步的那句初始化USART寄存器。接下来看看相关的寄存器吧。我把程序弄上来,对照程序说比较方便。
1: P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口
2: ME1 |= UTXE0 + URXE0; // 使能USART0的发送和接受
3: UCTL0 |= CHAR; // 选择8位字符
4: UTCTL0 |= SSEL0; // UCLK = ACLK(32768HZ)
5: UBR00 = 0x03; // 波特率9600
6: UBR10 = 0x00; //
7: UMCTL0 = 0x4A; // Modulation
8: UCTL0 &= ~SWRST; // 初始化UART状态机
9: IE1 |= URXIE0; // 使能USART0的接收中断
第1,2 3 4句程序不解释了,自己看看寄存器就好了,
我主要说一下波特率的设置,在串口调试里面这点,都是比较繁琐的,像51还要和相关的定时器配合使用,
430单片机不需要定时器配合,只要有UCLK时钟就好了,这里时钟是32768HZ。
序第8,9句都是按照上面串口设置流程来的啊,不多了,也简单。我下面复制一段代码,是力天电子的例程里面的,简单说2句。
这里他使用了430单片机的低功耗模式,全局中断打开以后执行了LPM1,这是进入低功耗的一条宏定义,使用起来很方便,其实430单片机低功耗,就是设置一些状态位,然后关闭相应的时钟源,这样以来就降低了功耗,下图说的很明白了啊。我们使用LPM1,那就是说只用SMCLK,ACLK还是激活的,我们串口使用的时钟是ACLK,所以低功耗模式下面还是可以接收数据,然后在中断函数里面将CPU唤醒(就是退出LPM1模式),然后执行LPM1后面的while语句,将接收到的数据发送回PC。上面的例程也正是说明了这点。
|