找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1950|回复: 1
打印 上一主题 下一主题
收起左侧

MSP430F5529LP P3.3,P3.4串口测试程序

[复制链接]
跳转到指定楼层
楼主
ID:959158 发表于 2021-8-6 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSP430F5529LP关于P3.3,P3.4串口测试
  1. #include <msp430.h>
  2. //#include <io430.h>
  3. void delay(int ms)        //延时函数
  4. {
  5.     int i,j;
  6.     for( i=0;i<ms;i++)
  7.     for( j=0;j<240;j++);
  8. }

  9. void send_buf(unsigned char *ptr)    //发送字符串
  10. {
  11.     while(*ptr != '\0')
  12.     {
  13.         while(!(UCA0IFG & UCTXIFG));
  14.         UCA0TXBUF = *ptr;
  15.         ptr++;
  16.         delay(50);
  17.     }
  18. }

  19. void main(void)
  20. {
  21.     WDTCTL = WDTPW + WDTHOLD;      //关闭看门狗

  22.     P4DIR |= BIT7;                               //初始化LED

  23.     //串口初始化
  24.      P3SEL    |=  BIT3+BIT4;                       // P5.6,7 = USCI_A1 TXD/RXD
  25.      UCA0CTL1 |=  UCSWRST;                      // **Put state machine in reset**
  26.      UCA0CTL1 |=  UCSSEL_1;                     // ACLK
  27.      UCA0BR0   =  0x03;                         // 32768Hz 9600 波特率为9600
  28.      UCA0BR1   =  0x00;                             // 32768Hz 9600
  29.      UCA0MCTL |=  UCBRS_3 + UCBRF_0;           // Modulation UCBRSx=1, UCBRFx=0  ok
  30.      //UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16;
  31.      UCA0CTL1 &= ~UCSWRST;                   // **Initialize USCI state machine**
  32.      UCA0IE |=  UCRXIE;                       // Enable USCI_A1 RX interrupt 使能中断

  33.      //S2  ok
  34.     P2IE |= BIT1;
  35.     P2IES |= BIT1;
  36.     P2IFG &= ~ BIT1;
  37.     P2REN |= BIT1;
  38.     P2OUT |= BIT1;
  39.     _EINT();                                               //中断使能
  40.    // send_buf("串口通信\r\n");
  41.     //send_buf("jecaa\r\n");
  42.     while(1)
  43.     {
  44.         //send_buf("jecaa\r\n");
  45.         delay(500);


  46.     }
  47. }
  48. int A=0;
  49. #pragma vector = USCI_A0_VECTOR
  50. __interrupt void USCI_A0()
  51. {
  52.     A++;
  53.     switch(_even_in_range(UCA0IV,4))
  54.     {
  55.     case 0:break;                             // Vector 0 - No interrupt
  56.         case 2:                                   // Vector 2 - RXIFG
  57.            // UCA0TXBUF = UCA0RXBUF;                // 发送接收到的数据
  58.                                      // 如需对发送信息进行处理修改此处
  59.             break;
  60.      case 4:break;                             // Vector 4 - TXIFG
  61.      default: break;
  62.     }
  63. }
  64. int b=0;
  65. #pragma vector = PORT2_VECTOR
  66. __interrupt void P2_ISR()
  67. {
  68.     b++;
  69.     if(P2IFG & BIT1)
  70.     {
  71.         while((P2IN & BIT1)==0);
  72.         P4OUT ^= BIT7;
  73.         send_buf("Pressed\r\n");
  74.     }
  75.     P2IFG &=~ BIT1;
  76. }

复制代码

代码下载: 串口测试.zip (59.87 KB, 下载次数: 15)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1040921 发表于 2022-7-29 12:17 | 只看该作者
你好,请问你这个串口通信时发送字符串,是从电脑往单片机发送吗
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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