- 博客(4)
- 收藏
- 关注
原创 字节与int\float等数据类型转换
此处使用小端模式存储数据,Byte范围为0~255,满255进1,例如有int=1234,则byte[0]=214,byte[1]=4。注意:此处没有做溢出检测,无论操作系统使用小端还是大端,这里都将使用小端模式存储。
2023-09-13 09:33:39 193
原创 STM32IIC通讯问题
1、初始化后总线一直处于buzy:大部分原因是因为硬件,检查通讯电路是否正常,默认总线空闲为高。2、运行一段事件后buzy卡死:通讯过程中造成硬件短路、通讯的外设(eeprom等)因为受到干扰不正常强制拉低通讯电路,也要先检查硬件。如果硬件没问题需要软件复位IIC通讯。3、软件复位IIC通讯:在调用软复位IIC接口前需要拉高SCL和SDA通讯脚,间隔几十微妙后检测一下是否被拉高,检测到拉高后再调用软复位。4、程序卡在等待设备忙碌:忙碌检测逻辑有问题,参考下面链接。
2023-05-29 17:36:29 504 1
原创 串口通讯问题
溢出:当RXNE没被清零,再一次接收到数据。正常逻辑是串口数据先通过移位寄存器,再到数据寄存器,RXNE为1,读取数据后硬件自动清零。溢出就是当数据寄存器有数据,没有及时读取,串口又再一次接收到数据,触发溢出。开启非空中断默认开启溢出中断。1、串口中断函数放在了内存慢速区,导致不能及时读取数据。清除溢出标志,溢出后数据一定丢了,要改换接受数据方式。3、串口中断优先级过低或者代码中有频繁开关中断的地方。2、针对于上面原因解决。
2023-05-27 11:11:26 475 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人