打印

zstack协议中UART的两种模式

[复制链接]
632|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
协议栈中UART有两种模式:
1、中断
2、DMA
对于这两种模式具体运用在哪一步,纠结了很久.通过UART配置结构:
typedef struct
{
  uint8 *rxBuf;
  uint8 rxHead;
  uint8 rxTail;
  uint8 rxMax;
  uint8 rxCnt;
  uint8 rxTick;
  uint8 rxHigh;
  uint8 *txBuf;
#if HAL_UART_BIG_TX_BUF
  uint16 txHead;
  uint16 txTail;
  uint16 txMax;
  uint16 txCnt;
#else
  uint8 txHead;
  uint8 txTail;
  uint8 txMax;
  uint8 txCnt;
#endif
  uint8 txTick;
  uint8 flag;
  halUARTCBack_t rxCB;
} uartCfg_t;
可以看到协议栈为串口收发分别配置了一块内存空间rxBuf和txBuf,具体在HalUARTOpen()里配置.
而中断与DMA这两种模式具体就运用于 数据在串口缓存U0_1DBUF与rxBuf/txBuf之间传送 的过程.
串口接收DMA模式:(data) —> U0DBUF —(DMA)—> rxBuf —> HalUARTRead()读取rxBuf数据进行处理
串口接收中断模式:(data) —> U0DBUF —(中断)—> rxBuf —> HalUARTRead()读取rxBuf数据进行处理

串口发送DMA模式:(data) <— U0DBUF <—(DMA)— txBuf
串口发送中断模式:(data) <— U0DBUF <—(中断)— txBuf

相关帖子

沙发
uptown| | 2016-9-12 16:10 | 只看该作者
zstack协议是什么?

使用特权

评论回复
板凳
uptown| | 2016-9-12 16:12 | 只看该作者
看着好乱,代码没有解释。

使用特权

评论回复
地板
不会发光的LED|  楼主 | 2016-9-17 23:12 | 只看该作者
uptown 发表于 2016-9-12 16:12
看着好乱,代码没有解释。

哦,下次注意了!

使用特权

评论回复
5
vibra2016| | 2016-9-19 21:40 | 只看该作者
这个需要根据实际情况来配置使用的。

使用特权

评论回复
6
typeof| | 2016-9-19 22:19 | 只看该作者
最好能够画个流程图看看的。

使用特权

评论回复
7
typeof| | 2016-9-19 22:25 | 只看该作者
DMA的地址怎么配置的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

102

帖子

1

粉丝