查看: 5958|回复: 4

说一下Z-Stack的UART驱动

[复制链接]
Vigi_Lin 发表于 2012-8-10 11:34:30 | 显示全部楼层 |阅读模式
        关于Z-Stack的UART驱动,在HAL层的hal_uart.c文件中,要使用串口就得先配置串口,有个结构体的,详情如下
       typedef struct
      {
          bool                configured;        // 已配置?
          uint8               baudRate;         // 波特率
          bool                flowControl;      // 流量控制
          uint16              flowControlThreshold;  // 流量控制阀值
          uint8               idleTimeout;      // 超时
          halUARTBufControl_t rx;          // 接收缓冲
          halUARTBufControl_t tx;         // 发送缓冲
          bool                intEnable;         // 中断使能
          uint32              rxChRvdTime;   //
          halUARTCBack_t      callBackFunc;  // 回调函数,当串口接收数据的时候调用
      }halUARTCfg_t;

      
      所以,我们一般都是在任务初始化的时候进行UART的配置,具体操作如下
      要先#include "hal_uart.h"
      声明一个串口配置
      halUARTCfg_t uartConfig;
     接着进行配置
       uartConfig.configured           = TRUE;              // 2x30 don't care - see uart driver.
       uartConfig.baudRate             = HAL_UART_BR_38400;
       uartConfig.flowControl          = FALSE;
       uartConfig.flowControlThreshold = 64; // 2x30 don't care - see uart driver.
       uartConfig.rx.maxBufSize        = 128;  // 2x30 don't care - see uart driver.
       uartConfig.tx.maxBufSize        = 128;  // 2x30 don't care - see uart driver.
       uartConfig.idleTimeout          = 6;   // 2x30 don't care - see uart driver.
       uartConfig.intEnable            = TRUE;              // 2x30 don't care - see uart driver.
       uartConfig.callBackFunc         = uartCB;  // 回调函数,这个要自己写,如果不用可设置为0

       接着你就可以使用uint16 HalUARTRead ( uint8 port, uint8 *pBuffer, uint16 length )以及
       uint16 HalUARTWrite ( uint8 port, uint8 *pBuffer, uint16 length )来进行串口的收发了,具体实现请参考SerialApp
      
       特别提一下,流量控制,当设置了这个标志之后,你就得要有CTS以及RTS这两个针脚。
      
outman 发表于 2012-8-13 22:32:29 | 显示全部楼层
审核晚了,楼主见谅
lizheng86312 发表于 2012-8-29 11:56:20 | 显示全部楼层
学到东西了。顶。。。
wslb 发表于 2012-11-24 19:09:42 | 显示全部楼层
在HAL层的hal_uart.c文件中typedef struct这个结构体是要自己添加的吗?我好像在hal_uart.c没有具体的看到
 楼主| Vigi_Lin 发表于 2012-12-6 15:25:02 | 显示全部楼层
wslb 发表于 2012-11-24 19:09
在HAL层的hal_uart.c文件中typedef struct这个结构体是要自己添加的吗?我好像在hal_uart.c没有具体的看到

有的,细心点找找看
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表