MSP430实现串口通讯,uart代码部分
单片机源程序如下:
- #include <MSP430x14x.h>
- #include "df_uart.h"
- #include "packet.h"
- #include "protocol.h"
- #define USART_DIR P3DIR
- #define USART_SEL P3SEL
- #define USART_IN P2IN
- #define USART_OUT P3OUT
- #define UTXD0 BIT4
- #define URXD0 BIT5
- void UartInit()
- {
- //设置管脚为第二功能
- USART_SEL |= UTXD0 + URXD0;
- //8位数据,1位停止位,奇校验
- UCTL0 = CHAR + PENA + SWRST;
- //选择UCLK = ACLK
- UTCTL0 = SSEL0;
- //设置波特率为9600bits/s
- UBR00 = 0x3;
- UBR10 = 0;
- UMCTL0 = 0x4A;
- UCTL0 &= ~ SWRST;
- //打开模块USART0
- ME1 |= UTXE0 + URXE0;
- //打开USART0接收中断
- IE1 |= URXIE0;
- }
- void SendUart(unsigned char *pBuffer, unsigned char n_byte)
- {
- unsigned char q0;
- for(q0 = 0; q0 < n_byte; q0++)
- {
- //判断是否发送完毕
- while((IFG1 & UTXIFG0) == 0);
- TXBUF0 = *pBuffer;
- pBuffer++;
- }
- }
- #pragma vector = USART0RX_VECTOR
- __interrupt void Usart0Rx()
- {
- if((U0RCTL & RXERR) == 0)
- {
- AddUsData(RXBUF0);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
uart.rar
(921 Bytes, 下载次数: 9)
|