RemoTI的串口通信
来源:互联网 发布:虎豹骑最帅捏脸数据女 编辑:程序博客网 时间:2024/06/09 21:49
由于zigbee pro和RF4CE当初设计针对的应用场合有些不一样,所以协议栈的实现是有些不一样的。ZStack里面的很多函数在RemlTI里面都找不到了,有些是改头换面了。
RemoTI里面关于串口的程序例子貌似只有SerialBoot,但是这个例子里面串口通信部分有很大的局限性:每次只能接受一个字节。就是说这里面是没有缓存的……如果没有及时接受的话前面的数据就会被后来的的覆盖掉。在例程里,由于就一个死循环在不断地监测串口,没有其他任务,而且对于每一个字节处理的时间也不长,因此还是能够比较及时地接受每一字节的。但是当我想把它弄到OSAL中作为其中一个任务执行时就出问题了,我原意是想每隔一段时间才执行一次串口的任务,这样的话明显就不能及时接受所有字符了。难道要自己写一个利用中断实现的缓存机制吗?不过,幸好再次翻看了一下官方API的说明文档,发觉有一系列开头是HalUART的函数,而且根据说明发现是和串口相关的函数。果断翻查整个文件包,结果在Components文件夹里的hal里的include文件夹中找到了名为hal_uart.h的头文件,而实现文件在target文件夹中,只不过例程几乎都没有包含这个头文件。再一次证明了,看官方的开发说明文档才是王道。
但是问题又来了,target中居然有4个文件夹,并且代码中也对应着多种模式。
void HalUARTInit(void){#if HAL_UART_DMA HalUARTInitDMA();#endif#if HAL_UART_ISR HalUARTInitISR();#endif#if HAL_UART_USB HalUARTInitUSB();#endif}
uint8 HalUARTOpen(uint8 port, halUARTCfg_t *config){ (void)port; (void)config;#if (HAL_UART_DMA == 1) if (port == HAL_UART_PORT_0) HalUARTOpenDMA(config);#endif#if (HAL_UART_DMA == 2) if (port == HAL_UART_PORT_1) HalUARTOpenDMA(config);#endif#if (HAL_UART_ISR == 1) if (port == HAL_UART_PORT_0) HalUARTOpenISR(config);#endif#if (HAL_UART_ISR == 2) if (port == HAL_UART_PORT_1) HalUARTOpenISR(config);#endif#if (HAL_UART_USB) HalUARTOpenUSB(config);#endif return HAL_UART_SUCCESS;}
其中有一个是名为USB的,由于我看过zigbee开发板的电路图,发觉开发板的串口通信是通过usb来实现的,所以我就自以为是地认为应该引用USB文件夹中的文件。结果搞了非常久都不行,最后回头过来看zigbee pro的实现,发现zigbee pro里串口的实现文件是一样的。由于之前有人弄过zigbee pro并且能实现串口功能,因此决定研究一下在zigbee pro中用的是哪一个模式。通过调试发现用的函数竟然是名字带DMA的,而且,zigbee pro中连名字带USB的函数都没有。这就好办了,将与DMA相关的文件全部导入到工程,然后我是手动修改了宏定义,强行在串口功能中使用名字带DMA的函数,最后就搞定了。
- RemoTI的串口通信
- RemoTI内SimpleApp的点对点通信问题
- 串口通信的基本概念
- 串口通信的基本知识
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 简单的串口通信
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的心得
- STM32的串口通信
- 通知栏自定义安装提示
- android 大文本读取
- Android Intent用法一 实现activity之间跳转 并 传参
- What is Inter Packet Gap or Inter Frame Gap?
- Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版 在用rails3.2学习过程中遇到的问题及解决方法
- RemoTI的串口通信
- Windowsxp自动登录
- mfc 改变对话框背景颜色
- [转]iOS控件的Sent Events的含义
- Linux/CRC校验
- chm格式的文件打不开
- PHP 分页代码
- GPS坐标系与直角坐标的转换
- RDP 键盘快捷键映射