![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32学习记录
EthanYhunt
有一定技术水平,嵌入式、单片机等等。英语也不错。
展开
-
【STM32记录】DMA发送/0解决方法
DMA配置完成后,会把第一个数据放到FIFO中,而我最开始的代码,把数组填充放到DMA配置的后面,所以放入FIFO的第一个数据为0,如果其他不变,把数组的第1个元素换成'X',则输出的第一个字符为'X'。所以修改程序,把数组填充后,再调用DMA_Cmd函数。可以正常发送,但是有问题,发送50个字符,每次复位重新发送时,第一个字符为/0,循环发送的时候,也是第一次发送的第一个字符为/0,如图。这样,放入FIFO的第一个数据,就是想要的数据了,结果如下,没有/0,解决了这个问题。原创 2024-01-03 09:56:13 · 877 阅读 · 0 评论 -
串口sr寄存器txe tc复位值
【STM32】串口SR寄存器TXE和TC的初值 - 知乎原创 2022-04-18 16:12:32 · 376 阅读 · 0 评论 -
B站记录——PWM捕获
用定时器的输入捕获来计算输入信号的周期,因为这个例程只用到了一个输入捕获频道,依据的原理是中文参考手册上的图在捕获到上升沿的时候,会进入中断,两次上升沿之间的时间就是输入信号的周期。解决2个问题,一是输入时间太长,超过定时器的周期,溢出;二是怎么获得2次捕获,进而计算出输入时间。用一个全局的结构体变量,处理相关数据typedef struct{ FlagStatus Egde;//Egde = SET表示当前处于高电平;Egde = RESET表示当前处于低电平; uint8 uc.原创 2021-09-24 11:08:17 · 542 阅读 · 0 评论 -
B站记录——STM32的串口
进行记录,省着忘。在整个框架下进行串口的配置,串口接收采用中断方式接收,全局变量数组作为缓冲区,每次接收到一个字节,进入中断服务函数,把接收到的内容保存在数组里,使用定时器的方法判断一个数据帧的结束,定时对接收到的数据进行处理,这两个处理都需要滴答定时器衍生的软件定时器#define Usart1RecTimer sysTimer[4] //串口1接收定时器,如果超时,表示一帧接收完毕#define Usart1ControlBeepTimer sysTimer[5] //Usart1Cont原创 2021-09-08 16:41:54 · 577 阅读 · 0 评论