Realtek RL8710bn串口收发处理框架

本文介绍了Realtek RL8710bn的串口收发处理框架,涵盖中断处理、数据发送、接收完成、等待超时等功能。详细解析了各个处理函数的作用,如uart_irq、uart_send_stream_done、uart_send_stream等,并阐述了串口初始化、数据读写及关闭过程。同时,给出了程序逻辑流程图。
摘要由CSDN通过智能技术生成

串口收发处理框架(基于sdk-ameba-v4.0c_180328)
勤基科技 凌秋明

一.包括如下处理函数:

(1)static void uart_irq(uint32_t id, SerialIrq event)该函数主要处理串口有数据产生中断时调用,主要实现:获取收到的字符,并存储到 u->recv_buf 接收buffer 中;当u->recv_buf满时,u->prxwrite 会重新从头部开始写入,并置标志位u->rxoverlap 为 1,表示buffer处于满状态。如果u->prxwrite 大于 u->prxread 的时候,证明已经覆盖旧的未读数据,这时需要 u->prxread = u->prxwrite;。更新超时tick , u->last_update(主要为了记录超出定义的接收时间,视为接收完毕)。

(2)static void uart_send_stream_done(uint32_t id)该函数,串口数据发送完毕时调用,主要实现:清除发送buffer;释放发送相关的block信号量(u->tx_sema ,u->dma_tx_sema)。

(3)static int uart_send_stream(uart_socket_t u, char pbuf, int len)该函数发送串口数据流时调用,主要实现:获取发送信号量u->dma_tx_sema (主要保护正在发送的数据,使之完全发送后再释放信号量u->dma_tx_sema );发送串口数据流serial_send_stream_dma();

&

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值