- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
协议栈中的MT包实现UART的发送与接收.
协议栈中的MT包实现UART的发送与接收
文档说明
Zigbee协议栈已经把使用串口的条件准备好了,从应用角度讲,利用协议栈现有平台即ZStack自带的MT包来实现自己的串口应用,只需对协议栈做一些修改就可以实现URAT发送与接收的功能。
编写人员:任一权,刘童
版本更新记录,编写版本:V0.1 时间:2012-12-15
关键函数的解析
MT_UartInit ()①
这是为UART串口传输数据而初始化的MT函数包,在其中定义了串口的波特率,最大接收发送数据量,传输模式等相关配置。在这里的各项参数不需要改变,保持系统默认即可。
MT_UartProcessZToolData()②
这是MT程序包中URAT接收数据的代码,在这里面需要修改的地方是,在数据接收完毕后需要添加一个回车,便于我们区分不同传输数据,具体的代码为UartRxBuf.RxBuf[count]=\n;此段代码需要添加在count++;后,这里注意一下count,一会还会用到。
hal_board_cfg.h③
首先说明一下,串口接收发送数据的方式有两种:一种是中断模式,另一种是DMA模式,这里是使用中断模式。而在hal_board_cfg.h中,DMA模式的优先级要高于中断模式的,这里最简单的解决方案就是将DMA的那段预编译注释掉,即仅留一种模式——中断。
void Sampleapp_Init④
这是应用层函数初始化,即对我们自己的具体应用进行初始化,在这里面需要添加两段代码MT_UartInit()和MT_UartRegisterTaskID(SampleApp_TaskID);这两端代码要添加在Sampl Init()中。
MT_UartInit()
这段代码的作用初始化Uart接口,初始化接口配置。
MT_UartRegisterTaskID(SampleApp_TaskID);⑤
这段代码是注册一个处理串口的任务。
Sampleapp_ProcessEvent⑥
这就是我们的具体应用处理函数了,我们这里主要要用到的是串口接收和发送,所以对应的代码是case SPI_INCOMING_ZTOOL_PORT:处理此事件的代码为UartRxComCallBack();这个函数就是我们接收PC机上发送的以串字符后的操作。
代码功能及执行流程
至此,串口发送接受数据的已经全部修改完毕,可以将程序下载到板子上,利用PC机上的程序调试助手向2530发送数据,在程序调试助手和板子上的液晶屏上分别显示。我们在回顾一下代码的执行顺序
首先进行各种初始化,这里就不再详解
程序进去osal_start_system,开始进行轮询有没有要处理的事件
这时如果从串口发送一个数据,发生中断,(这里我们利用的中断模式)
在OSAL框架中,Hal_ProcessPoll()函数是在一个死循环中,所以每过一定的时间就会执行到。在Z-Stack OSAL中这个时种节奏定义是1ms,Hal_ProcessPoll()的作用是检测中断标志位,由于串口已经接收到数据,所以进入中断处理,具体处理过程如下HalUARTPoll(); ? HalUARTPollISR(); ? static uint16 HalUARTRxAvailISR(void)
?然后就进入了MT_UartProcessZToolData;(详解如下) ?数据接收完毕后又进入轮询,由于sampleapp中已经不为空了,所以就会执行sampleapp中的操作,在Sampleapp中的
case SPI_INCOMING_ZTOOL_PORT:
UartRxComCallBack();
break;
这段代码将被执行,UartRxComCallBack();中的代码如上述红字表示,完成我们设定的相应功能。
实验数据
利用程序调试助手测试一下程序的收发速率(波特率为115200)
RX TX 最小发送周期(ms) 速率B/s 3 2 18 227.8 6 5 33 333.3 11 10 47 446.8 21 20 79 519.0 31 30 119 512.5
附:涉及的代码:
①void MT_UartInit ()
{
halUARTCfg_t uartConfig;
/* Initialize APP ID */
App_TaskID = 0;
/* UART Configuration */
uartConfig.configured = TRUE;
uartConfig.baudRate = MT_UART_DEFAULT_
您可能关注的文档
- 华为eSpaceIAD132E(T)HUAWEIeSpace统一通信产品(佛山格威通讯整理)..doc
- 华为FusionCube系统构架介绍..docx
- 华为C8500最全的刷机方法普通升级ROOT强刷线刷卡刷全教程..doc
- 华中科技大学853微宏观经济学201020112012真题..doc
- 华为C8500刷Recovery刷ROM详细图文教程..docx
- 华为STB与HMS接口技术规范..doc
- 华为WCDMA资料学习心得之无线网络接口和流程..doc
- 华为GSM网络优化工程师面试试题元旦版本..doc
- 华为TD23G互操作优化技术方案(精华篇)..doc
- 华为_时间管理培训..doc
- 2025年坚果种植行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年特种气体行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年交通工程咨询行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年继电保护及自动化设备行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年轻质建筑材料制造行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年交通及公共管理用金属标牌制造行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年茧丝绸行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年技术推广服务行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年马桶行业研究报告及未来五至十年行业预测分析报告.docx
- 2025年检测服务行业研究报告及未来五至十年行业预测分析报告.docx
文档评论(0)