DMA串口这个东西,前几年都是寄存器混合HAL库方可食用,因为那时候底层不太完善,我用中断它不香吗?(资源不紧张的情况下中断速度稍微快一点点)
但是该学的还是要学学,说不定哪个项目能用上呢~(到底哪个项目资源那么紧张了QwQ)
打个基础先,DMA串口就是硬件自动接收数据,减少MCU的负荷,想要的时候读取下就行了
单片机:STM32L051C8T6 功能:DMA接收串口1数据,定时500ms打印串口数据
国际惯例上STM32CubeMx的相关配置图:
1.串口基础配置
2.DMA配置,注意:RX的mode需要设置为Circular,不然接收1次数据后就挂了,没看到的就找BUG吧,hiahiahiahiahiahiahiahia
然后在生成文件后添加变量,如下:
uint8_t Rx_Buffer[300];