打印
[MCU]

MSP430F5438A的串口

[复制链接]
4192|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2020-11-6 11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设置串口,最关键的是波特率的设置,推荐一个网站,很方便地计算波特率,http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430BaudRateConverter/index.html
1 P3SEL |= (BIT4 + BIT5);                      // P3.4,5 = USCI_A0 TXD/RXD
2   UCA0CTL1 |= UCSWRST;                      // **Put state machine in reset**
3   UCA0CTL1 |= UCSSEL_2;                     // CLK = SMCLK
4   UCA0BR0 = 26;                           // 24MHz/57600=26,1,0,1
5   UCA0BR1 = 0;                           //
6   UCA0MCTL = UCBRF_1+UCBRS_0+UCOS16;        // Modulation UCBRSx=0, UCBRFx=0,UCOS16 = 1
7   UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
8   UCA0IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt

#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
  switch(__even_in_range(UCA0IV,4))
  {
  case 0:break;
  case 2:break;
  case 4:break;
  default:break;
  }
}
关键就是UCA0IV 寄存器,通过看文档得知,这是 USCI_Ax Interrupt Vector Register,具体功能如下:
00h = No interrupt pending,0是无中断
02h = Interrupt Source: Data received; Interrupt Flag: UCRXIFG; Interrupt
Priority: Highest,2是数据接收触发中断
04h = Interrupt Source: Transmit buffer empty; Interrupt Flag: UCTXIFG;
Interrupt Priority: Lowest,4是数据发送中断
经常使用的是接收中断,没用过发送中断

使用特权

评论回复

相关帖子

沙发
wakayi| | 2020-12-2 16:08 | 只看该作者
串口设置成什么模式了啊

使用特权

评论回复
板凳
wowu| | 2020-12-2 16:09 | 只看该作者
串口中断没有做任何工作啊

使用特权

评论回复
地板
xiaoqizi| | 2020-12-2 16:11 | 只看该作者
初始化非常关键

使用特权

评论回复
5
木木guainv| | 2020-12-2 16:20 | 只看该作者
430的串口还是很强大的

使用特权

评论回复
6
aoyi| | 2020-12-2 16:22 | 只看该作者
不错的代码 可以在上边添加自己的东西

使用特权

评论回复
7
九一式| | 2022-3-16 17:12 | 只看该作者
感谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1191

主题

5220

帖子

12

粉丝