第十一节 串口通信
来源:互联网 发布:西部数码域名证书查询 编辑:程序博客网 时间: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模式:
配置UART0寄存器,将UART0配置为8N1模式,波特率为115200。
在软件开发过程中调试是一个很关键的过程,而调试用的最多的手段就是打印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
- 第十一节 串口通信
- 第十一节 进程间通信
- php学习 第十一节
- 第十一节 Trait进阶
- 第三章 第十一节 总结
- 第十一节,命名空间namespace
- 第十一节 逻辑操作符
- OC学习第十一节Json
- js第十一节-字符串方法
- 第十一节下篇:Object类
- 第十一节 搭建邮件服务器
- 第十一节:元组 Tuple3
- RH124-第十一节-系统日志
- 第十一节:多窗口切换
- 汇编第十一节-标志寄存器
- 第一章 第十一节 查看C#代码
- 第十一节--Handler的基本应用
- 第十一节 java学习 其他运算符
- 京东商品详情页碎碎念
- 《统计学习方法》学习笔记(二):感知机
- 传入一个年份,求该年不是闰年——C语言函数
- iOS中Block介绍 内存管理与其他特性
- Gradle
- 第十一节 串口通信
- canvas画线段
- Python+Tornado+Nginx服务器部署解决方案
- C#调用Mail发送QQ邮件
- 远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
- Ant自动编译打包&发布 android项目
- JVM内存分析工具介绍
- php define
- 使用JQuery上传图片 实现预览