
STM32开发
文章平均质量分 72
基于STM32的项目开发
趣知boy
这个作者很懒,什么都没留下…
展开
-
软件编写流程
2.编写硬件初始化模块初始化硬件,并验证功能。对于同一类的硬件但是不是同一个也要分开验证,因为参数可能有不同设置,导致效果不一样,类似轴的初始化,对于不同回零速度得到的效果就不一样。3.每写一个功能块就去验证一下硬件功能,硬件软件要螺旋交替检查。1.编写软件或者测试用例验证各个硬件模块。原创 2025-03-25 23:56:11 · 75 阅读 · 0 评论 -
STM32开发——总结
32中引脚都有很多功能,如图,PA0和PA15都可以做为TIM2_CH1的输出IO,但是也只能一个引脚,通过CubeMX配置后,你就不能重复定义TIM2_CH1的输出了,防止错误。原创 2023-06-27 22:35:50 · 309 阅读 · 0 评论 -
STM32开发——智能小车(循迹、避障、测速)
tim2:产生PWM波20ms(左右轮调速ch1、ch2) 产生PWM波20ms(舵机ch3) 7199、199。tim2:产生PWM波20ms(左右轮调速ch1、ch2) 产生PWM波20ms(舵机ch3) 7199、199。tim3:定时1s(Oled发送速度)tim1:定时1us(超声波测距)tim1:定时1us(超声波测距)PB14:外部中断——测速累加。左边红外D0——PB12。右边红外D0——PB13。)——应该是硬件设计问题。motor.c代码相同。I2C很容易和IO冲突。原创 2023-06-27 22:32:58 · 19613 阅读 · 8 评论 -
STM32开发——非标协议(DH11+LCD1602)
编译的总文件夹dh11andlcd,C文件不能跨文件夹查找,新增的分文件,需要都放调用的文件夹下C文件和H文件理解:H文件是门脸,放在前面给别人的,别人一看就知道有什么东西。C是给内部人用的,不用放在门脸上。原创 2023-06-22 13:56:00 · 943 阅读 · 0 评论 -
STM32开发——IIC(OLED屏幕)
在oled屏幕上显示文字或者图像。IIC协议——OLED屏幕_趣知boy的博客-优快云博客。原创 2023-06-20 11:09:07 · 1324 阅读 · 0 评论 -
STM32开发——ADC(烟雾传感器)
作用:用于读取电压值,然后转换为数字量传给单片机,单片机再通过计算,可以得到电压值。ADC的性能指标量程:能测量的电压范围分辨率:ADC能辨别的最小模拟量,通常以输出二进制数的位数表示,比如:8、10、12、16位等;位数越多,分辨率越高,一般来说分辨率越高,转化时间越长转化时间:从转换开始到获得稳定的数字量输出所需要的时间称为转换时间ADC特性12位精度下转换速度可高达1MHZ供电电压:V SSA :0V,V DDA :2.4V~3.6V。原创 2023-06-19 22:39:39 · 3273 阅读 · 1 评论 -
STM32开发——DMA(数据搬运)
DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于CPU,在这个时间中,CPU对于内存的工作来说就无法使用。代替 CPU 搬运数据,为 CPU 减负。1. 数据搬运的工作比较耗时间;2. 数据搬运工作时效要求高(有数据来就要搬走);3. 没啥技术含量(CPU 节约出来的时间可以处理更重要的事)。原创 2023-06-19 10:26:18 · 1768 阅读 · 0 评论 -
STM32开发——串口通讯(第2篇)——WIFI(Esp8266)
注意:1.在中断中一般不直接在中断服务函数里处理数据,而是在收到数据后直接丢给队列,再处理数据;2.在中断服务函数里尽量减少使用延时函数及打印函数。原创 2023-06-15 16:01:22 · 3160 阅读 · 0 评论 -
STM32开发——串口通讯(第1篇)——蓝牙(非中断+中断)
通过中断的方法接受串口工具发送的字符串,并将其发送回串口工具。串口发送数据,使用超时管理机制串口接收数据,使用超时管理机制串口中断模式发送串口中断模式接收作用:以阻塞的方式发送指定字节的数据形参 1 :UART_HandleTypeDef 结构体类型指针变量形参 2:指向要发送的数据地址(指针),(用数组时不用取地址)(用字符变量需要取地址&)形参 3:要发送的数据大小,以字节为单位 strlen(ch)形参 4:设置的超时时间,以ms单位,最大0xffff。原创 2023-06-09 22:21:07 · 4668 阅读 · 0 评论 -
STM32开发——感应垃圾桶(舵机、超声波测距、振动检测)
PWM波的频率不能太高,大约50HZ,即周期=1/频率=1/50=0.02s,20ms左右。确定 定时时间=1/频率其中:Tclk:定时器的输入时钟频率(单位MHZ)Tout:定时器溢出时间(单位为us)eg;4999eg:7199如果周期为20ms,则 PSC=7199,ARR=199角度控制0.5ms-------------0度;2.5% 对应函数中CCRx为51.0ms------------45度;5.0% 对应函数中CCRx为10。原创 2023-06-08 19:47:26 · 2362 阅读 · 0 评论 -
STM32开发——定时器led、PWM呼吸灯
定时器分类:基本定时器(TIM6~TIM7)通用定时器(TIM2~TIM5)高级定时器(TIM1和TIM8)A.输入捕获B.输出比较C.PWM 生成(边缘或中间对齐模式)D.单脉冲模式输出A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)C.输入捕获D.输出比较E.支持针对定位的增量(正交)编码器和霍尔传感器电路F.触发输入作为外部时钟或者按周期的电流管理。原创 2023-06-07 21:13:40 · 1942 阅读 · 0 评论 -
STM32开发——电动车报警装置
单片机供电VCC GND接单片机产品不震动,输出高电平,模块上的DO口产品震动,输出低电平,绿色指示灯亮AO口不用编程实现需求:当振动传感器接收到振动信号时,使用中断方式点亮LED1。重新中断服务函数//如果中断来源是PA4 PA4为低进入了中断//led1亮500ms后熄灭如果直接在中断服务函数里调用 HAL_Delay 函数,则会造成系统卡死。原因:程序初始化时默认把滴答定时器的中断优先级设为最低,其它中断源很容易打断它导致卡死。原创 2023-06-07 10:26:36 · 847 阅读 · 0 评论 -
STM32开发(CubeMX+HAL)——点灯(轮询、中断)
中断优先级中的级别抢占优先级:高抢占可以打断低抢占响应优先级:高响应不可以打断低响应中断是软件级别的事事件是硬件级别的事//中断/事件线/*!disabled.//EXTI 模式/*!//触发类型/*!//EXTI 控制/*!lines.DISABLE */EXTI_Mode_Interrupt = 0x00, //产生中断EXTI_Mode_Event = 0x04 //产生事件EXTI_Trigger_Rising = 0x08, //上升沿。原创 2023-06-06 14:58:05 · 1687 阅读 · 0 评论 -
STM32开发——简介、开发环境(Keil5、CubeMX)、HAL库
什么是单片机?单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。STM系列单片机命名规则ST -- 意法半导体M -- Microelectronics 微电子32 -- 总线宽度项目。原创 2023-06-05 16:30:02 · 15442 阅读 · 0 评论