Q:为什么使用串口前要先在电脑上安装CH340驱动?
三种编程方式简介
也可以通过DMA方式减小CPU资源的消耗
直接把数据在SRAM内存和UART模块进行传输 ,流程:
- 把数据在DMA中配置好
- 数据传输
- 产生中断,CPU介入
编程方式改进
1、查询方式对应的读写会存在时间延迟
比如接收:没来得及保存RDR寄存器中接受到的数据时,RDR寄存器的值就已经被覆盖;
2、中断方式:事先在发送buffer中存好数据,使能发送空中断;把接受的数据存入buffer
发送
- char tx_buf[100];存数据
- enable TXE
- TXE_ISR:中断来取出数据发给TDR
接收
- 使能RXNE(接收非空)
- RXNE_ISR:利用中断从RDR中取数据到缓冲区
3、用环形缓冲区改进中断
4、用DMA方式减小CPU资源的消耗
一、查询方式进行编程
查询方式容易丢失数据
二、中断方式进行编程
必须调用中断函数,在实际中作用不大?
和查询相比?
TXE中断:TDR中的数据放入移位寄存器
TC中断:移位寄存器中的数据全部发送出去