第十一节 串口通信

来源:互联网 发布:西部数码域名证书查询 编辑:程序博客网 时间:2024/05/17 07:25
第十一节  串口通信
    在软件开发过程中调试是一个很关键的过程,而调试用的最多的手段就是打印Log,嵌入式平台很少有显示设备,所以我们需要将信息通过串口打印到PC端。
    MT254xboard上已经通过RS232芯片将UART0连接到DB9,我们只需要将DB9连接到电脑即可,UART0 对应的外部设备 IO 引脚关系为:P0_2------RX,P0_3------TX。
    我们需要将这两个IO配置为复用功能,CC2540的USART可以配置为SPI模式或者异步UART模式,这里我们需要配置为异步UART模式。
    首先配置IO为UART模式:
    PERCFG &= ~0x01;        // 配置UART为位置 1    P0SEL = 0x3c;           // P0_2,P0_3,P0_4,P0_5用作串口功能    P2DIR &= ~0XC0;         // P0 优先作为UART0

配置UART0寄存器,将UART0配置为8N1模式,波特率为115200。
    U0CSR |= 0x80;          // UART 方式    U0GCR |= 11;            // U0GCR与U0BAUD配合    U0BAUD |= 216;          // 波特率设为115200    UTX0IF = 0;             // 清除中断标志    U0CSR |= 0X40;          // 允许接收    IEN0 |= 0x84;           // 开总中断,接收中断

这里采用中断方式来接收串口数据,并在中断中回调应用层的接收处理函数。

#pragma vector = URX0_VECTOR__interrupt void UART0_ISR(void){    uint8 ch;    URX0IF = 0;             // 清中断标志    ch = U0DBUF;    if ( NULL != RecvCb )   // 调用回调函数    {        RecvCb(ch);    }}


 为了测试串口的通讯功能,这里我们通过串口接收命令的方式来控制LED的亮灭和蜂鸣器的响和停止,并且显示当前的状态。根据串口输出提示,发送对应字符可以实现相应功能,并且显示状态。

 

本文章转载自
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/69222.aspx
请勿用于商业

0 0
原创粉丝点击