如何完成USART串口的bsp层开发
- 软件层级分层 + 大致流程
- 详解
1、软件层级分层 + 大致流程
硬件层 - SDK - 驱动层 - bsp - Service - 应用层
本次主要关注bsp层。
bsp层需要完成哪些功能:初始化USART + 初步处理接收的数据 + 将处理后的数据传给Service
本次USART分为了:DMA模式 + 中断模式(属于搬运方式的差异)
2、详解部分
-
中断方式初始化:开启对应时钟 + 利用库函数初始化USART + 配置波特率 + 开启发送 + 开启接收 + 清除(初始化)发送完成中断标志 + 清除(初始化)数据缓冲区非空中断标志 + 开启发送完成、数据缓冲区非空、IDLE线检测中断标志 + 使能USART_a + 使能对应GPIO + 使能NVIC对应优先级
-
DMA方式初始化:开启对应时钟 + 利用库函数初始化USART + 配置波特率 + 开启发送 + 开启接收 + 使能USART_b + 进行DMA配置(确认目标地址和源地址,确认搬运方向,确认模式等) + 使能对应GPIO + 使能NVIC对应优先级
-
对于本地数据进行初始化:为各个串口动态申请对应的内存,开启互斥锁