CC2430串口小结.doc

上传人:hw****26 文档编号:3519740 上传时间:2019-06-01 格式:DOC 页数:4 大小:37.50KB
下载 相关 举报
CC2430串口小结.doc_第1页
第1页 / 共4页
CC2430串口小结.doc_第2页
第2页 / 共4页
CC2430串口小结.doc_第3页
第3页 / 共4页
CC2430串口小结.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、协议栈版本:ZStack-1.4.3-1.2.1 一、串口的初始化/系统初始化byte osal_init_system( void )osalInitTasks();/系统任务初始化/任务初始化void osalInitTasks( void )#if defined( MT_TASK )/如果定义了 MT_TASK 就初始化 MT 任务,所以要使用uart 必须编译 MT_TASKMT_TaskInit( taskID+ );#endif/MT_TASK初始化void MT_TaskInit( byte task_id )MT_TaskID = task_id;/分配任务 IDSPIMgr

2、_Init();/SPI(UART)管理初始化 /* MT_TaskInit() */SPI(UART)管理初始化void SPIMgr_Init ()halUARTCfg_t uartConfig;/* Initialize APP ID */App_TaskID = 0;/应用层 TaskID 初始化为 0,在后面应用层如果想使用 uart需要注册该 TaskID/* UART Configuration */uartConfig.configured = TRUE;uartConfig.baudRate = SPI_MGR_DEFAULT_BAUDRATE;uartConfig.flow

3、Control = SPI_MGR_DEFAULT_OVERFLOW;uartConfig.flowControlThreshold = SPI_MGR_DEFAULT_THRESHOLD;uartConfig.rx.maxBufSize = SPI_MGR_DEFAULT_MAX_RX_BUFF;uartConfig.tx.maxBufSize = SPI_MGR_DEFAULT_MAX_TX_BUFF;uartConfig.idleTimeout = SPI_MGR_DEFAULT_IDLE_TIMEOUT;uartConfig.intEnable = TRUE;#if defined (

4、ZTOOL_P1) | defined (ZTOOL_P2)uartConfig.callBackFunc = SPIMgr_ProcessZToolData; /回调函数#elif defined (ZAPP_P1) | defined (ZAPP_P2)uartConfig.callBackFunc = SPIMgr_ProcessZAppData; /回调函数#elseuartConfig.callBackFunc = NULL;#endif/* Start UART */#if defined (SPI_MGR_DEFAULT_PORT)HalUARTOpen (SPI_MGR_DEF

5、AULT_PORT, /打开默认串口#else到这里串口的初始化基本就完成了,还有个打开串口,先不下去了,下面的水是越来越浑,过几天总结底层的 二、串口的事件处理/系统主循环void osal_start_system( void )Hal_ProcessPoll(); / 串口与定时器轮询函数/ 串口与定时器轮询函数void Hal_ProcessPoll () HalTimerTick();#if (defined HAL_UART) #endif/串口轮询函数void HalUARTPoll( void )/这里会根据是 DMA 还是普通串口有两种不同的轮询方式,这里说普通串口#if H

6、AL_UART_ISR#if HAL_UART_DMAif ( cfg-flag else#endifpollISR( cfg );#elif HAL_UART_DMApollDMA( cfg );#endif/普通串口轮询函数static void pollISR( uartCfg_t *cfg )轮询完事再次回到 void HalUARTPoll 函数中,看是否触发事件,如果触发了HAL_UART_RX_FULL、 HAL_UART_RX_ABOUT_FULL、HAL_UART_RX_TIMEOUT 三个中任意一个就调用回调函数处理。if ( evt /串口回调函数见 zigbee 200

7、6 串口回调函数说明三、与应用层联姻底层和应用层联姻呢?在 TI 的协议栈很多都是通过注册 Register。按键、串口通过注册可以传递任务 ID,即 TaskID。从而利用偷梁换柱、浑水摸鱼的技术将底层的任务传到应用层/注册函数void SPIMgr_RegisterTaskID( byte taskID )App_TaskID = taskID;/任务 ID 被偷梁换柱了/如果应用层调用了这个函数,则此时 App_TaskID 就变成了应用层的任务 ID 了现在我们在回去简单看一下串口的回调函数void SPIMgr_ProcessZAppData ( uint8 port, uint8 event )if (event /将 msg_ptr发送到 App_TaskID,即你注册的应用层到这里,串口的信息就有底层传送到应用层了我也该休息休息了

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。