[MCU] 【MSP432评测】3、UART测试

[复制链接]
1145|5
 楼主| xinmeng_wit 发表于 2020-4-15 20:29 | 显示全部楼层 |阅读模式
MSP432的uart口是直接与调试器连接的:



其实我们可以直接用调试器的usb口当做串口用,使用的就是P1.2和P1.3,并不需要额外接线,非常方便。

直接借用TI官方提供的列子,主程序如下:

  1. int main(void)
  2. {
  3.         WDT_A->CTL = WDT_A_CTL_PW |             // Stop watchdog timer
  4.                                         WDT_A_CTL_HOLD;
  5.         clk_init();//clk init
  6.         uart_init();//uart init,9600
  7.         while(1)
  8.         {
  9.                 send_str((uint8_t *)"uart test...\r\n");
  10.                 for(int i=0;i<10000;i++)
  11.                 {;}
  12.         }
  13. }




串口初始化:

  1. void uart_init(void)
  2. {
  3.     // Configure UART pins
  4.     P1->SEL0 |= BIT2 | BIT3;                // set 2-UART pin as secondary function

  5.     // Configure UART
  6.     EUSCI_A0->CTLW0 |= EUSCI_A_CTLW0_SWRST; // Put eUSCI in reset
  7.     EUSCI_A0->CTLW0 = EUSCI_A_CTLW0_SWRST | // Remain eUSCI in reset
  8.             EUSCI_B_CTLW0_SSEL__SMCLK;      // Configure eUSCI clock source for SMCLK
  9.     // Baud Rate calculation
  10.     // 12000000/(16*9600) = 78.125
  11.     // Fractional portion = 0.125
  12.     // User's Guide Table 21-4: UCBRSx = 0x10
  13.     // UCBRFx = int ( (78.125-78)*16) = 2
  14.     EUSCI_A0->BRW = 78;                     // 12000000/16/9600
  15.     EUSCI_A0->MCTLW = (2 << EUSCI_A_MCTLW_BRF_OFS) |
  16.             EUSCI_A_MCTLW_OS16;

  17.     EUSCI_A0->CTLW0 &= ~EUSCI_A_CTLW0_SWRST; // Initialize eUSCI
  18.     EUSCI_A0->IFG &= ~EUSCI_A_IFG_RXIFG;    // Clear eUSCI RX interrupt flag
  19.     EUSCI_A0->IE |= EUSCI_A_IE_RXIE;        // Enable USCI_A0 RX interrupt

  20.     // Enable global interrupt
  21.     __enable_irq();

  22.     // Enable eUSCIA0 interrupt in NVIC module
  23.     NVIC->ISER[0] = 1 << ((EUSCIA0_IRQn) & 31);
  24. }

字符串发送函数:

  1. void send_str(uint8_t *str)
  2. {
  3.         while(*str!='\0')
  4.         {
  5.         // Check if the TX buffer is empty first
  6.         while(!(EUSCI_A0->IFG & EUSCI_A_IFG_TXIFG));

  7.         // Echo the received character back
  8.         EUSCI_A0->TXBUF = *str;       
  9.                         str++;
  10.         }
  11. }

测试结果:



串口测试ok


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
xiaoqizi 发表于 2020-5-9 16:01 | 显示全部楼层
非常感谢楼主分享
磨砂 发表于 2020-5-9 16:02 | 显示全部楼层
这个真是好简单
晓伍 发表于 2020-5-9 16:02 | 显示全部楼层
最高传输速度能达到多少呢
八层楼 发表于 2020-5-9 16:03 | 显示全部楼层
代码非常详细
观海 发表于 2020-5-9 16:03 | 显示全部楼层
这个板子还真是不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

279

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部