- 博客(12)
- 收藏
- 关注
原创 STM32之I2C通信
起始条件寄存器(STM32转为主模式)---检测起始标志位SB---将从机地址写入数据寄存器DR---是否接收?标志位ADDR置位---移位/数据寄存器是否空标志位---(EV8事件)写入数据1 ......--请求设定停止位(EV8_2事件)---写入停止位。),时序信号如下,第一部分为要写入的设备地址,第二部分为该设备的某个寄存器,第三部分为要写入的内容。针指示的地址下,读取从机数据(Data),如下图,第一部分为设备选择并读,第二部分为读取的数据,而数据对应的寄存器地址由指针能够给出。
2025-07-07 23:35:26
744
原创 STM32项目之直流有刷电机转速闭环控制
L298N:如下图中,L298N为双路驱动,我们只用到左侧,三接线端子分别接->供电、GND(需要与单片机共地)、3.3V供电(给单片机),通道A使能口接PWM控制的PB0,左侧的两个逻辑输入接PA6和PA7。本项目用到的原件:直流有刷电机(带测速编码器)、电机驱动(TB6612或L298N)、STM32最小系统板、OLED、蓝牙模块、直流电源(7~12V)直流加粗样式有刷电机:供电口接L298N输出,编码器接口->PB6、PB7。
2025-07-06 17:51:39
233
原创 STM32之串口通信USART
通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统;通信协议:制定通信的规则,通信双方按照协议规则进行数据收发。可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2。HEX模式/十六进制模式/二进制模式:以原始数据的形式显示。内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从。文本模式/字符模式:以原始数据编码后的形式显示;引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。起始位:标志一个数据帧的开始,固定为低电平。校验位:用于数据验证,根据数据位计算得来。
2025-06-29 19:26:42
783
原创 STM32之DMA直接存储器存取
程序开始,调用 MyDMA_Init((uint32_t)DataA,(uint32_t)DataB,4);函数,但是该函数在配置时将DMA_Cmd没有进行使能,所以并不会开始数据传输,到while(1)循环里,delay了1秒后,通过MyDMA_Transfer();开始赋予DMA_Cmd使能,然后显示转运后的数,最后通过源地址数++完成渐变DMA转运实验。个通道),每个通道都支持软件触发和特定的硬件触发,STM32F103C8T6。STM32的DMA最多有12个独立可配置的通道: DMA1。
2025-06-28 19:03:16
572
原创 STM32之ADC模数转换
可以选择不同的指定通道进行转换,初始化中有参数为通道数量,每次触发之后,对设定的通道数目进行转换,转换结构都放在数据寄存器,通常为了防止数据被覆盖,需要DMA及时将数据转发走。STM32的ADC为:12位逐次逼近型ADC,1us转换时间,18个输入通道,可测量16个外部和2个内部信号源,规则组和注入组两个转换单元模拟看门狗自动监测输入电压范围。(1)规则组可以同时转换16个通道,但是数据寄存器只能存在一个通道的数据,在转换时需要注意数据覆盖的问题,通常与DMA配合使用。触发方式可以通过硬件触发和软件触发。
2025-06-27 22:54:04
1025
原创 STM32之定时器的应用四:编码器测速
编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度;每个高级定时器和通用定时器都拥有1。若要完成编码器测速,还需要关注减速比、4倍频、转换在一分钟内测速等,且由于电机转速较快,需要减少中断时间保证测速的准确性。:在一秒的定时器中断内,对脉冲数Temp进行计数,即为速度。两个输入引脚借用了输入捕获的通道1。
2025-06-27 14:05:56
265
原创 STM32之定时器的应用三:输入捕获及其应用
(2)测周法主要是通过测量一个周期内,通过一个定时器固定频率fc来计算在周期内有多少个标准频率,一个标准频率计时为1/fc,若有N个标准频率,则计时为N/fc,则频率为计时的倒数:fc/N。测频法适用于高频信号,需要多上升沿,有助于减少误差,结果更新慢;时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续。根据中界频率,若待测频率小于中介频率,测周法误差小更适用;模式,同时测量频率和占空比可配合主从触发模式,实现硬件全自动测量。输入捕获,输入捕获模式下,
2025-06-26 17:38:01
403
原创 STM32之定时器的应用二:输出比较及其应用
PWM是一种通过快速开启和关断,来生成所需要的电压调制技术,在电力电子技术中,PWM主要通过在想要的调制波上添加载波,调制波大于载波,开关打开,调制波小于载波,开关关断。(3)占空比:PWM的最主要参数,通过在一个周期内改变开启时间和关断时间所占的比例调节占空比,其计算方式为:占空比=开启时间/一个周期时间。(1)频率:主要用于决定脉冲开启的频次,频率越高,生成的调制波效果越好。(2)分辨率:PWM可调节的最小参数,即占空比变化的步距。0或翻转的操作,用于输出一定频率和占空比的。
2025-06-26 09:56:22
696
原创 STM32之定时器的应用一:内部/外部时钟定时器中断
计数器溢出频率:CK_CNT_OV=CK_CNT/(ARR+1)= CK_PSC / (PSC + 1) / (ARR + 1)(2)CNT的主要作用是计数,当上升沿个数达到PSC的计数值时,计时时间到,产生中断,CNT开始重新计数。16位计数器(CNT)、预分频器(PSC)、自动重装寄存器(ARR)的时基单元,在72MHz计。举例:PSC=1,主频频率为72MHz,则分频后输出频率为72MHz/(1+1)=36Mhz。定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发。
2025-06-24 23:04:28
365
原创 STM32常用C语言概念记录
宏定义-> #define ABC 123456789 //用新变量名ABC替代123456789。}StructNam。主要用途:定义一个取值受限制的整形变量,用于限制变量取值范围;2.typedef在定义时要在最后加分号,而宏定义不需要。1.宏定义新名字在左边,typedef新名字在右边。使用:StructNam.x = 'A';
2025-06-24 09:16:23
187
原创 运行yolo预测代码出现错误:AssertionError: Image Not Found
最初我以为是路径问题,在那个地方用了绝对路径导致的出错,最后发现是文件夹用了中文命名导致的。
2025-04-27 11:30:48
82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人