cc2530-Contiki系统的串口输入问题
来源:互联网 发布:inventor软件多少钱 编辑:程序博客网 时间:2024/06/05 18:52
在工作中接触到了cc2530,并在上面使用contiki系统。以下是使用串口时遇到的坑。
第一个坑。
首先我尝试在contiki做一个串口回显例程。串口打印输出可以使用printf函数,可串口输入不能使用scanf函数,我查看源代码了好久,才发现只需要在contiki-conf.h中修改一下配置即可使用串口输入功能。
在contiki-conf.h文件中找到如下代码
/* * USARTs: * SmartRF RS232 -> USART0 / Alternative 1 (UART) * SmartRF LCD -> USART1 / Alternative 2 (SPI) */#define UART_ON_USART 0#define UART1_CONF_ENABLE 0#ifndef UART0_CONF_ENABLE#define UART0_CONF_ENABLE 1#endif#ifndef UART0_CONF_WITH_INPUT#define UART0_CONF_WITH_INPUT 1#endif#ifndef UART0_CONF_HIGH_SPEED#define UART0_CONF_HIGH_SPEED 0#endif
把UART0_CONF_WITH_INPUT置1即开启了串口输入。
第二个坑。
串口输入功能开启了,现在测试一下串口回显,我输入1234567890给cc2530,返回的却是134690,有时候还是1346790。
很奇怪,数字2、5、8都没有回显。
经过仔细排查,我查到了UART0中断函数那里,代码如下:
#if UART0_CONF_WITH_INPUT #ifdef SDCC void uart0_rx_isr(void) __interrupt (URX0_VECTOR) #else #pragma vector=URX0_VECTOR __near_func __interrupt void uart0_rx_isr(void) #endif { ENERGEST_ON(ENERGEST_TYPE_IRQ); leds_toggle(LEDS_YELLOW); URX0IF = 0; if(uart0_input_handler != NULL) { uart0_input_handler(U0DBUF); } ENERGEST_OFF(ENERGEST_TYPE_IRQ); } #endif
代码中有宏定义不好阅读,我整理了一下,最后是这样的:
void uart0_rx_isr(void) __interrupt (URX0_VECTOR) { ENERGEST_ON(ENERGEST_TYPE_IRQ); leds_toggle(LEDS_YELLOW); URX0IF = 0; if(uart0_input_handler != NULL) { uart0_input_handler(U0DBUF); } ENERGEST_OFF(ENERGEST_TYPE_IRQ); }
由于之前有使用DHT11读取数据时,第一次读正常第二次读错误的经验(引脚问题),所以这里我很快判断是leds_toggle(LEDS_YELLOW);这条语句影响到了串口回显。注释掉时候,我发送1234567890,回显也显示1234567890了。
以上是使用contiki串口遇到的坑。
0 0
- cc2530-Contiki系统的串口输入问题
- cc2530-关于Contiki系统的时钟
- cc2530-基于contiki系统读取DHT11问题总结
- contiki for CC2530的IAR移植
- contiki for CC2530的IAR移植
- Contiki在CC2530上的内核移植
- cc2538在contiki系统的串口数据输…
- CC2530串口
- CC2530串口
- contiki CC2530 CC2430例子描述
- CC2530的ZigBee应用层加入串口
- CC2530--串口实验的回显
- 基于contiki系统的MCU使用经验总结
- CC2530 串口驱动
- CC2530 串口实验
- CC2530串口接收总结
- CC2530串口中断
- CC2530串口通讯2
- StatusBarHidden 没效果
- windows下密码含有@字符的数据库连接
- AFX_MANAGE_STATE(AfxGetStaticModuleState())DLL资源
- 欢迎使用CSDN-markdown编辑器
- mysql 主从同步原理
- cc2530-Contiki系统的串口输入问题
- 33-题目1113:二叉树
- 详解 CALayer 和 UIView 的区别和联系
- Git工作流指南(五):Forking工作流
- SVN系列(一)--Windows平台下SVN服务器搭建及其使用
- Android API Guide学习笔记
- [Magento SQL] 获取一定日期范围内销售最好的产品,返回sku,qty_ordered,price,product_name
- Set,List,Map的区别
- ionic build android