STM32
文章平均质量分 70
Out1AWs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【STM32】 使用ESP8266与服务器进行通信
看了很久的江科大课程了,陆陆续续也学了不少东西,就想着做个类似课设的小项目,尽量多的用上学到的东西。原创 2025-05-20 23:02:00 · 2324 阅读 · 0 评论 -
【STM32】 使用硬件SPI与W25Q64通信
大致内容与上一篇链接:类似,但是使用的STM32的硬件SPI。在MySPI中也不需要定义手动读写高低电平的代码,而是有底层硬件电路完成相关工作。按照上图对硬件SPI的控制寄存器进行初始化即可完成相应功能。原创 2025-05-20 19:16:03 · 382 阅读 · 0 评论 -
【STM32】 使用软件SPI与W25Q64通信
SPI是一种全双工的同步时序通信,使用两根数据线MOSI和MISO,一根时钟线SCK和片选线SS。但在一主多从时需要挂载多根片选线使用的通讯方式,本质上将通讯双方的移位寄存器连接到一起形成一个“循环队列”,在移动8位后完成了主机与从机的数据交换虽然分模式,但大致环节相同,模式0如图首先拉低片选信号,在SCK低电平时,主机向MOSI写信号,从机向MISO写信号;SCK高电平时,主机读MISO写信号,从机读MOSI信号;如此8次完成一个字节的交换。原创 2025-05-20 19:07:11 · 672 阅读 · 0 评论 -
【STM32】 使用硬件I2C与MPU6050通信
使用STMF103C8内置的I2C与MPU6050进行通讯,对相关寄存器进行相关配置,并读取六轴传感器的值在OLED显示。I2C原理在这篇博客中已经说明,这里不再赘述。原创 2025-05-04 13:26:04 · 495 阅读 · 0 评论 -
【STM32】 使用软件模拟I2C与MPU6050通信
使用软件模拟I2C时序写MPU6050寄存器进行相关配置,并读取六轴传感器的值在OLED显示使用STM32F103C8的PB10、PB11引脚模拟SCL和SDA,产生以上波形。因为I2C为同步半双工通信,使用软件模拟不会有太大问题。I2C总线空闲时需要保持为高电平。但是在MPU6050上已经内置上拉电阻,所以PB10、PB11设置为复用开漏输出。低耦合高内聚,先写好底层的I2C代码,再写MPU6050的控制与通讯代码,最后在主函数中调用。原创 2025-05-04 12:53:14 · 697 阅读 · 0 评论 -
【STM32】 串口+DMA非定长数据包收发_使用串口空闲中断USART_IDLE
使用DMA将串口收到的数据从串口数据寄存器转运到预定义的数组当中。在数据接收完成时触发USART串口空闲中断,在中断服务程序中初始化DMA1通道5,并使能DMA1通道4将数据转运到串口数据寄存器中。在DMA1通道4的数据发生完成时触发发送完成中断初始化通道4并使能通道5。由图可得STM32F103C8中DMA1与USART1的连接,因此使用DMA1通道5转运接收数据,并用DMA1通道4转运发送数据,触发方式设置为USART硬件触发。原创 2025-04-25 17:28:18 · 476 阅读 · 0 评论 -
【STM32】 串口+DMA定长数据包收发_使用DMA中断DMA_IT_TC4/5
使用DMA将串口收到的数据从串口数据寄存器转运到预定义的数组当中,接收完毕后触发DMA转运完成中断,在中断服务程序中进行配置,将数据转运到串口数据寄存器中。由图可得STM32F103C8中DMA1与USART1的连接,因此使用DMA1通道5转运接收数据,并用DMA1通道4转运发送数据,触发方式设置为USART硬件触发。原创 2025-04-25 17:28:09 · 619 阅读 · 0 评论 -
【STM32】 串口收发
使用STM32的串口1接受电脑发送的一字节数据,并在产生中断后进行回传,并显示在OLED上。原创 2025-04-15 16:41:47 · 353 阅读 · 0 评论 -
【STM32】 AD多通道+DMA转运
打开GPIO、ADC、DMA时钟初始化GPIO的PA0~4为模拟输入模式初始化ADC为软件触发、连续扫描模式初始化DMA为硬件触发、自动重装。原创 2025-04-10 16:10:56 · 325 阅读 · 0 评论 -
【STM32】Protues 8.9 仿真定时器测PWM频率
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。原创 2025-03-26 18:58:16 · 609 阅读 · 0 评论 -
【STM32】Protues 8.9 仿真 PWMI测频率
使能GPIOA时钟与TIM时钟->PA6设置为上拉输入->TIM3设置输入为内部时钟源->初始化时基单元TimeBase->使用PWMIConfig同时配置TIM3的通道1与通道2分别捕获上升沿与下降沿->启动定时器。使能GPIOA时钟与TIM时钟->PA0设置为复用推挽输出->TIM2设置输入为内部时钟源->初始化时基单元TimeBase->设置输出比较模式->启动定时器。使用PA0产生PWM波,使用PA6捕获波形,并使用定时器使用PWMI模式计算频率与占空比。如果有大佬请不吝赐教😭。原创 2025-03-31 13:58:08 · 415 阅读 · 0 评论 -
【STM32】Protues 8.9 仿真PWM控制直流电机
使用PWM_Init()函数初始化引脚和定时器,定时器TIM2的第三路输出为PA2。PA3接ENA,使用TIM2基本定时器的通道三输出PWM波形控制电机转速。单片机无法承载直流电机,使用L298作为直流电机的驱动。Motor_Init()函数初始化引脚PA0 PA1。Motor_SetSpeed()函数对速度进行设置。使用PWM_SetCompare3()设置比较值。Key_Init()初始化相关引脚及寄存器。在中断服务程序中对速度进行更改。在主程序中进行相关引脚的初始化。在循环中调用显示及速度设置程序。原创 2025-03-25 19:33:14 · 1702 阅读 · 0 评论
分享