3012|6

64

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430串口通信 [复制链接]

10芯积分
请问有用G2553串口发送一个字节或字符串的完整程序吗?

最佳答案

查看完整内容

希望可以帮到你!

最新回复

对着看吧  详情 回复 发表于 2015-8-14 14:28
 
点赞 关注

回复
举报

1800

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
找官方例程,论坛下载中心找就有了,要懂得搜索资料啊

点评

我找到的都是不能正确在串口上显示的啊。。  详情 回复 发表于 2015-8-14 11:57
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
sint27 发表于 2015-8-14 08:13
找官方例程,论坛下载中心找就有了,要懂得搜索资料啊

我找到的都是不能正确在串口上显示的啊。。
 
 
 

回复

26

帖子

0

TA的资源

一粒金砂(中级)

4
 

  1. #include "msp430g2553.h"

  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. /*****系统时钟初始化*****/
  5. void Clock_Init()
  6. {
  7.   BCSCTL2 |= SELS;
  8. }

  9. /*****MSP430内部看门狗初始化*****/
  10. void WDT_Init()
  11. {
  12.   WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
  13. }

  14. /*****串口设置*****/
  15. void UART_Init()
  16. {
  17.   P1SEL = BIT1 + BIT2;//P1.1 P1.2设置为TXD,RXD
  18.   P1SEL2 = BIT1 + BIT2;
  19.   UCA0CTL1 |= UCSWRST;//复位UART,并设置串口
  20.   UCA0CTL1 |= UCSSEL_2;//选择串口时钟
  21.   UCA0CTL0 &= (~UC7BIT);//设置字符长度为8位
  22. //  UCA0BR0 = 0x0d;//设置波特率,32768HZ/2400
  23.   UCA0BR0 = 0x06;//设置波特率,1.048576MHZ/9600
  24.   UCA0BR1 = 0;
  25. //  UCA0MCTL = UCBRS1 + UCBRS2 + UCBRF0;
  26.   UCA0MCTL = UCBRS2 + UCBRF3 + UCOS16;
  27.   UCA0CTL1 &= (~UCSWRST);//串口设置完毕,在UCSWRST=1时设置串口
  28.   UC0IE |= UCA0TXIE + UCA0RXIE;//使能接收和发送中断
  29. }
  30. /*****串口发送数据函数*****/
  31. void Send_Byte(uchar data)
  32. {
  33.   while(IFG2 & UCA0TXIFG == 0);//发送寄存器空的时候发送数据
  34.   UCA0TXBUF = data;
  35. }

  36. /*****处理来自串口的接收中断*****/
  37. #pragma vector = USCIAB0RX_VECTOR
  38. __interrupt void USCI0RX_ISR(void)
  39. {
  40.   uchar data = 0;
  41.   data = UCA0RXBUF;//接收到的数据存起来
  42.   Send_Byte(data);//将接收到的数据再发送出去
  43. }

  44. /*****处理来自串口的发送中断*****/
  45. #pragma vector = USCIAB0TX_VECTOR
  46. __interrupt void USCI0TX_ISR(void)
  47. {

  48. }

  49. /*****主函数*****/
  50. int main( void )
  51. {
  52.   WDT_Init();//看门狗初始化
  53. //  Clock_Init();//系统时钟初始化
  54.   UART_Init();//串口初始化
  55.   _EINT();//开中断
  56.   while(1);
  57. }
复制代码

希望可以帮到你!

点评

非常感谢  详情 回复 发表于 2015-8-14 14:57
 
 
 

回复

26

帖子

0

TA的资源

一粒金砂(中级)

5
 
  1. #include  "msp430g2553.h"

  2. void main(void)
  3. {
  4.   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  5.   
  6.   BCSCTL1 = CALBC1_1MHZ;                    // Set DCO
  7.   DCOCTL = CALDCO_1MHZ;
  8.   
  9.   P1SEL = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
  10.   P1SEL2 = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
  11.   
  12.   UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  13.   UCA0BR0 = 104;                            // 1MHz 9600
  14.   UCA0BR1 = 0;                              // 1MHz 9600
  15.   
  16.   UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1
  17.   UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  18.   IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt

  19.   __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
  20. }

  21. //  Echo back RXed character, confirm TX buffer is ready first
  22. #pragma vector=USCIAB0RX_VECTOR
  23. __interrupt void USCI0RX_ISR(void)
  24. {
  25.   while (!(IFG2&UCA0TXIFG));                // 发送中断标志检测,每次发送后都要检测
  26.                                             //直到发送完成,才可发送下个字节的数据
  27.   UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
  28. }
复制代码
 
 
 

回复

26

帖子

0

TA的资源

一粒金砂(中级)

6
 
对着看吧

msp430g2553官方中文资料.pdf

4.48 MB, 下载次数: 29

 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

7
 

非常感谢
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表