重大社2023《物联网cc2530与zigbee开发》教学课件04.pptx

重大社2023《物联网cc2530与zigbee开发》教学课件04.pptx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《物联网CC2530与ZigBee开发》知识点:OSAL串口 OSAL串口01串口是开发板与用户电脑交互的一种工具,正确地使用串口对于ZigBee无线网络的学习具有较大的促进作用,使用串口的基本步骤:(1)初始化串口,包括设置波特率、中断等;(2)向发送缓冲区发送数据或者从接收缓冲区读取数据。上述方法是使用串口的常用方法,但是由于ZigBee协议栈的存在,使得串口的使用略有不同,在ZigBee协议栈中已经对串口初始化所需要的函数进行了实现,用户只需要传递几个参数就可以使用串口,此外,ZigBee协议栈还实现了串口的读取函数和写入函数。因此,用户在使用串口时,只需要掌握ZigBee协议栈提供的串口操作相关的三个函数即可。ZigBee协议栈中提供的与串口操作有关的三个函数为:?uint8 HalUARTOpen(uint8 port, halUARTCfg_t *config);?uint16 HalUARTRead(uint8 port, uint8 *buf, uint16 len);?uint16 HalUARTWrite(uint8 port, uint8 *buf, uint16 len)。 OSAL串口02Z-Stack串口相关配置在HAL层的hal_uart.h和hal_uart.c文件中,串口的应用首先对串口进行初始化。串口初始化相关的结构体在hal_uart.h中定义。typedef struct{ bool configured; //是否设置串口,TRUE开始配置,FALSE取消配置串口 uint8 baudRate; //波特率设置 bool flowControl; //控制流设置,TRUE设置流控制,FALSE取消流控制 uint16 flowControlThreshold; //在RX缓存达到maxRxBufSize之前空余的字节数 uint8 idleTimeout; //超时时间 halUARTBufControl_t rx; //串口接受数据及数据长度, halUARTBufControl_t 结构体定义了串口最大传输的字节数以及传输的数据。 halUARTBufControl_t tx; //串口发送数据及数据长度,...... bool intEnable; //使能串口,TRUE,打开串口,FALSE,关闭串口 uint32 rxChRvdTime; halUARTCBack_t callBackFunc; //回调函数}halUARTCfg_t; OSAL串口03uint8 HalUARTOpen(uint8 port, halUARTCfg_t *config)函数:对串口进行初始化。port:是串口端口的设置,可以设置为串口0或者串口1config:该函数将halUARTCfg_t类型的结构体变量作为参数,因为halUARTCfg_t类型的结构体变量已经包含了串口初始化相关的参数,所以,将这些参数传递给halUARTOpen()函数,HalUARTOpen()函数使用这些参数对串口进行了初始化。int16 HalUARTRead(uint8 port, uint8 *buf, uint16 len)函数:串口的读操作函数。port:是串口端口的设置,可以设置为串口0或者串口1。buf:数据缓冲区len:数据长度返回值:为读取数据的长度。 OSAL串口04int16 HalUARTWrit(uint8 port, uint8 *buf, uint16 len)函数:串口的写操作函数。port:是串口端口的设置,可以设置为串口0或者串口1。buf:数据缓冲区len:数据长度返回值:为串口发送数据的长度。 OSAL串口05回调函数:回调函数就是一个通过函数指针(函数地址)调用的函数。如果把函数的指针(也就是函数的地址)作为参数传递给另一个函数,当通过这个指针调用它所指向的函数时,称为函数的回调。如:任务初始化函数中的uartConfig.callBackFunc = rxCB; 就将rxCB()传递给了uartConfig的成员函数callBackFunc,其中callBackFunc的定义为:HalUARTCBack_t callBackFunc;而halUARTCBack_t的定义为:typedef void (*halUARTCBack_t) (uint8 port, uint8 event);这就是定义了一个函数指针。正是因为将rxCB()传递

文档评论(0)

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

知识共享

1亿VIP精品文档

相关文档