- 博客(11)
- 收藏
- 关注
原创 软件--IIC
这段代码实现了STM32上的软件I2C通信协议。主要功能包括:初始化GPIO口(PA8为SCL,PA9为SDA)为开漏输出模式;提供微秒级延时函数;实现I2C基本操作(启动/停止信号、读写字节);封装了发送和接收多字节数据的函数。代码中特别注意了总线释放和时序控制,并处理了I2C通信中的应答机制。发送函数返回0表示成功,-1表示寻址失败,-2表示数据被拒收;接收函数也有类似错误处理机制。该实现不依赖硬件I2C外设,具有较高灵活性。
2025-11-04 21:52:22
177
原创 铁头山羊--I2C硬件读写数据(标志位轮询)
本文介绍了STM32 I2C模块的写数据操作实现过程。主要内容包括:1)I2C内部结构框图分析,重点说明状态寄存器SR和配置标志位;2)构建I2C初始化函数,配置GPIO和I2C参数;3)详细解析写数据函数My_IIC_SendBytes的实现流程,包括起始位发送、从机寻址、数据传输和停止位发送等关键步骤;4)强调在数据传输过程中需要持续检查AF应答标志位和传输状态标志位。该代码实现了完整的I2C主机写数据功能,并提供了错误检测机制。
2025-10-29 22:46:26
304
原创 铁头山羊--I2C模块的使用方法
I2C通信的基本流程包括起始位、地址传输和数据传输三个主要步骤。通信开始时,主机发送起始位,随后发送7位从机地址加1位读写方向位。数据仅在SCL高电平时有效,传输完成后主机发送停止位结束通信。寻址阶段位于起始位后,包含地址转换(如0x78转为01111001)和应答机制(ACK),其中从机或主机通过拉低SDA线进行应答。整个通信过程由起始位、地址帧、数据帧和停止位构成,通过严格的时序和应答机制确保可靠传输。
2025-10-29 12:05:57
137
原创 铁头山羊--串口小记
_ ORE __:Overrun Error–过载错误,由于过载造成了数据丢失,则ORE=1;:RxNE:Receive Data Register Not Empty——接受数据寄存器。:Parity Error–奇偶校验错,如果接受到的数据有校验错误,则PE=1;:Noise Error–噪声错误,接受的数据中检测到了噪声,则NE=1,否则NE=0;:Frame Error–帧格式错误,接受到了无效的数据帧,则FE=1;即RDR非空时,RxNE=1;【3.5】串口—格式化打印字符串。
2025-10-27 22:50:00
236
原创 如何理解计数时钟、预分频器和计时器的关系?
本文将STM32定时器的工作原理类比为古老的滴水计时装置,通过三个核心组件说明定时机制:1. 时钟源(72MHz系统时钟)如同水龙头的恒定滴水频率;2. 预分频器(PSC)相当于接水杯子,通过设置分频值(如71)将72MHz降频至1MHz;3. 计数器(ARR)从0累加到设定值(如999)产生1ms中断,实现精确定时。关键公式为:中断时间=(ARR+1)×(PSC+1)/系统时钟频率,体现了"高频分频+脉冲计数"的定时原理。
2025-10-17 22:46:27
402
原创 NVIC的作用是什么?
摘要:NVIC就像一位高效的前台,有序管理外设中断请求。它根据预设优先级规则(抢占优先级和响应优先级)仲裁中断,确保CPU一次只处理最紧急任务。当高优先级中断到来时,NVIC会暂停当前低优先级任务(中断嵌套),引导CPU进入对应中断服务函数。处理完成后必须清除中断标志,否则会陷入重复中断。这种机制让CPU能专注高效地处理多任务,避免混乱。
2025-10-17 22:44:23
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅