- 博客(4)
- 收藏
- 关注
原创 STM32通信接口学习:I2C通信
起始+从机地址位+读写位(0表示写)+应答位+指定地址+起始+从机地址位+读写位(1表示读)+应答位+读的时序。10位地址:11110+2位地址+1位读写位+8位地址;指定地址写:指定设备指定地址写入指定数据;起始+从机地址位+读写位(0表示写)+应答位+指定地址+指定数据+应答+指定数据+应答。到SDA上(高位先行),然后释放SCL,在SCL高电平时,从机读取数据位,依次循环上述八次,即可发送一个字节(可以看出主机对时序掌控的主导地位)起始+从机地址位+读写位(1表示读)+应答位+读的时序。
2025-02-15 12:42:33
581
原创 STM32DMA学习
RAM随机存储器 易失性,掉电丢失,包括:运行内存SRAM,外设寄存器,内核外设寄存器(内核外设:NVIC,SysTick)1.DMA无需CPU干预,即可进行外设(如AD的DR寄存器)与存储器(SRAM,Flash)或存储器之间的高速数据传输。ROM只读存储器 非易失性,掉电不丢失,包括:程序存储器Flash(主闪存),系统存储器(用于串口下载),选项字节。软件触发:以最快速度,连续不断地触发DMA,争取尽快将传输计数器清零,不可与循环模式同时使用。DMA请求,DMA的硬件触发;2.STM32存储器。
2025-02-14 12:10:37
127
原创 STM32ADC学习
ADC4种转换模式:单次转换(触发一次,转换一次,EOF标志位置1,判断转换结束,下一次转换又需触发~),连续转换(只需最开始触发一次,也无需判断结束)非扫描模式(只能选中序列1)左对齐,低位补0,相当于实际数据左移四位,得到的数据是实际数据的16倍数,可只取高八位,舍弃后面几位的精度,即12位退化为8位ADC。规则组最多可同时转换16个通道,但是数据寄存器只有一个,不想之前的数据被覆盖,就要尽快拿走数据,可用DMA配合转运数据;,扫描模式(多个序列,可任意指定,可重复);两个组完成转换后,也能申请中断。
2025-02-04 22:00:54
223
原创 STM32定时器学习
思考后觉得是因为:最初设置的中断频率太高,手动旋转编码器输入的方波信号频率肯定没有那么快,所以在编码器接口触发CNT自增/减前,就进行了中断(中断中会将CNT清零),所以CNT一直保持零。测周法:触发一次,转运一次CNT的值,同时把CNT值清零,这样下一次触发转运的CNT值就是一个周期的fc计次(通道1和通道2的从模式可以完成自动清零)CNT计数模式:向上计数(自增)向下计数(从重装值开始自减到0)中央对齐(先向上自增,申请中断,再向下自减,申请中断,循环)用定时器控制引脚,需要用复用开漏/推挽输出模式。
2025-01-27 15:21:48
568
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人