网站大量收购闲置独家精品文档,联系QQ:2885784924
  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
zigbee串口

第14 讲:Zstack 2006 串口机制学习 我们将串口机制的学习分为如图X所示的四大部分:串口配置、串口初始化、发送数据和接收数据。 图X 串口机制四大模块 串口配置:串口的配置主要完成配置使用UART0或者UART1,同时决定是否使用DMA,协议栈默认使用DMA,我们化繁为简不适用DMA。主要在文件hal_board_cfg.h中完成。 串口初始化:串口的初始化主要完成相关常量的初始化即打开串口串口的工作。主要涉及函数有SPIMgr_Init ()和HalUARTOpen()。 发送数据:发送数据主要完成将要发送的数据通过串口传递出去,主要涉及到的函数有HalUARTWrite()和串口发送中断服务函数HAL_ISR_FUNCTION()。 接收数据:接收数据主要完成将串口传递的数据接收并传递给相应的层(通常为应用层),主要涉及的函数有HalUARTPoll()和串口接收中断服务函数HAL_ISR_FUNCTION()。 串口配置 串口的配置主要决定是否使用DMA,以及使用UART0还是UART1,主要在文件hal_board_cfg.h中完成,摘录如下: #ifndef HAL_UART //如果使用串口,必须至少编译以下四者之一 #if (defined ZAPP_P1) || (defined ZAPP_P2) || (defined ZTOOL_P1) || (defined ZTOOL_P2) #define HAL_UART TRUE #else #define HAL_UART FALSE #endif #endif #if HAL_UART //默认使用UART0 #define HAL_UART_0_ENABLE TRUE #define HAL_UART_1_ENABLE FALSE #if HAL_DMA #if !defined( HAL_UART_DMA ) //默认使用DMA #define HAL_UART_DMA 0 #endif #else #undef HAL_UART_DMA #define HAL_UART_DMA 0 #endif #if !defined( HAL_UART_ISR ) //默认不适用普通UART #define HAL_UART_ISR 1 #endif #if !defined( HAL_UART_CLOSE ) #define HAL_UART_CLOSE FALSE #endif #else #define HAL_UART_0_ENABLE FALSE #define HAL_UART_1_ENABLE FALSE #define HAL_UART_DMA FALSE #define HAL_UART_ISR FALSE #define HAL_UART_CLOSE FALSE #endif 串口初始化 一、串口初始化 void SPIMgr_Init () { halUARTCfg_t uartConfig; App_TaskID = 0; //UART配置 uartConfig.configured = TRUE; uartConfig.baudRate = SPI_MGR_DEFAULT_BAUDRATE; uartConfig.flowControl = 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 (ZTOOL_P1) || defined (ZTOOL_P2) uartConfig.callBackFunc = SPIMgr_ProcessZToolD

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档