BOS-UART组件使用方法

前言

        独乐乐不如众乐乐,今天记录一下BOS-UART组件使用方法

使用方法分析

使用方式-发送

        在路径“BabyOS\bos\mcu\st\stm32f10x”         mcu_stm32f10x_uart.c 中,定义了实例:

bHalUartDriver_t bHalUartDriver = {
    .pSend    = _UartSend,
    .pReceive = _UartReceive,
};

 后面使用直接使用接口:

bHalUartDriver.pSend(HAL_LOG_UART, &ch, 1);

这个接口的发送是否堵塞与_UartSend 具体实现有关,这里默认是堵塞方式;

使用方式-接收

与上面发送方式类似,直接调用接口

bHalUartDriver.pReceive

 使用方式-中断发送

首先定义一个实例:

bUTIL_UART_INSTANCE

在中断服务函数中调用:

bUtilUartRxHandler

然后代码会轮询

BOS_REG_POLLING_FUNC(_bUtilUartDetectIdle);

超时中断就会调用回调函数

typedef void (*pbUartIdleCallback_t)(uint8_t *pbuf, uint16_t len);

 

代码技巧分析

        一款MCU中,一般都会有多个串口外设,UART1....

代码中如何区分UART1,UART2...呢?BOS中使用的是在形参中传入 传门口号区分

_UartSend(bHalUartNumber_t uart, const uint8_t *pbuf, uint16_t len)

别的方法也可以区分,比如

bHalUartDriver_t bHalUartDriver[n]  //n 定义为N各串口

其他实现方式还有。。。

对比上面两种方法就会发现他们各有优缺点,但是下面一个方法缺点更多更明显;就不详细分析了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值