社区导航

 

搜索
查看: 2097|回复: 6

[讨论] MSP430串口通信

[复制链接]

76

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-8-13 22:05 | 显示全部楼层 |阅读模式
10芯积分
请问有用G2553串口发送一个字节或字符串的完整程序吗?

最佳答案

查看完整内容

希望可以帮到你!

回复

使用道具 举报

29

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-8-13 22:05 | 显示全部楼层

  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

回复

使用道具 举报

1430

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2015-8-14 08:13 | 显示全部楼层
找官方例程,论坛下载中心找就有了,要懂得搜索资料啊

点评

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

回复

使用道具 举报

76

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-14 11:57 | 显示全部楼层
sint27 发表于 2015-8-14 08:13
找官方例程,论坛下载中心找就有了,要懂得搜索资料啊

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

回复

使用道具 举报

29

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-8-14 14:26 | 显示全部楼层
  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. }
复制代码

回复

使用道具 举报

29

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-8-14 14:28 | 显示全部楼层
对着看吧

msp430g2553官方中文资料.pdf

4.48 MB, 下载次数: 28


回复

使用道具 举报

76

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-14 14:57 | 显示全部楼层

非常感谢

回复

使用道具 举报

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

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-3 22:45 , Processed in 0.269469 second(s), 33 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表