STM32CubeMX
文章平均质量分 74
STM32CubeMX
米杰的声音
technical support please call WeChhao XiYuansEcho
展开
-
【STM32Cube】定时器产生固定数量的PWM
有这个需求主要是用来对步进电机进行控制,步进电机根据输入的脉冲数量移动对应的步数。如果利用IO口进行模式PWM,这种方法输出PWM频率误差大,并且对系统实时性有影响。如果利用一个定时器配合中断进行处理呢?在PWM中断中计数,当累加到设定数值之后停止PWM输出。但是当PWM频率高时,频繁的中断会影响程序运行的效率。为了解决这个问题,引入主从定时器来实现。即利用主定时器作为触发源,通过主定时器触发从定时器来工作。主从定时器产生固定PWM脉冲数配置步骤主控芯片为STM32H743IIT6主定时原创 2022-05-30 21:58:40 · 3422 阅读 · 3 评论 -
【STM32Cube】基于H743的SPI配置
1. SPI普通配置STM设置NSS引脚的软件管理是为了可以将NSS引脚空出来,像普通IO引脚运用。所以一般使用时,配置为软件管理模式(SSM=1),然后从机的CS片选引脚由一个IO控制(可以用空出来的NSS引脚),这里就配置该引脚为输入输出状态就可以。2. SPI+中断配置配置同上,加上中断即可。3. SPI+DMASPI接口具有发送和接收两个请求,在大数据量传输时,使用DMA更高效。原有数据都不用更改,只需要为SPI5配置两个DMA请求配置流。两个DMA流的Mode.原创 2022-05-30 16:19:30 · 3749 阅读 · 3 评论 -
【CubeMX】串口的DMA传输
1. 为什要配置串口的DMA传输ADC多通道采集数据需要采用DMA传输,开启DMA采集的数据就会保存在数组中。我们以前写串口接收时,每次接收只读一位,然后写的比较复杂,从开始位来判断标志位,循环读多少,来判断对方芯片发送的格式和校验,一不小心写错保存的数据就出差错了,十分麻烦。但用DMA直接将数组/指针首地址放入后,确定好数据长度,可直接存取正确的顺序,剩下只需要处理数据就好了。spi和iic也差不多,基本上是对变量的长度和地址进行操作。2. 基本配置这里根据实际需要设置DMA接收为No原创 2022-05-27 11:12:33 · 1042 阅读 · 0 评论 -
【电机测速】M法、T法、M/T法测速系统设计实现
旋转设备测量转速,一般采用和速度成正比的脉冲信号进行测量。通过计算脉冲信号的频率,进而计算实际转速。通过这样的方式测量转速主要有以下三种方法。下列方法针对不同速度下的转速计算精度各有优劣,而第三种方法的测速范围更宽,在测速程序设计中较为推荐。M 法通过计算确定时间内的脉冲个数得到转速,测量过程中首尾半个脉冲误差对低转速测量影响较大,因此多用于高转速测速; T 法通过计算两相邻脉冲的时间差换算得到周期及转速,在高转速测量过程中周期较小误差较大,故多用于低转速测速; M/T 法结合 M法和 T 法 各 自原创 2022-03-10 23:24:41 · 9253 阅读 · 4 评论 -
【STM32CubeMX】STM32F407配置CAN1通信调制OBD
前言:为了使STM32F407单片机能够与汽车进行OBD通信实验,要求对STM32F407开发板进行验证实验,以下是实验过程。1. 基础配置:配置CAN相关参数,波特率设定为500K,时钟频率为42M,波特率计算公式:42M/21/(1+2+1)=500K.另外开启串口1用于后续调试。...原创 2022-03-08 17:25:27 · 6613 阅读 · 1 评论 -
【STM32】在Keil上使用C++编程
人如果要进步,就要用于去接受新鲜事物,新鲜方法,新鲜思想。这种新鲜对你来说是新鲜的,可是在客观的世界,它却比你想象的更加成熟,这就是你的无知,善于向优秀的人去学习,善于向不同领域的人学习,倾听他们的思想,可能当时你觉得没用,那是因为你们还不在一个LEVEL。回到单片机,仅仅以实现功能为目的,那可能单片机你能走的路也就这么长了,甚至一年以后,五年以后,你还是这个水平,写的代码拼凑,没有层次,没有美感。这不是我想要的,所以从0到1,每天努力一点,不要永远做底层的那帮人。——米杰的声音原创 2021-11-25 17:05:18 · 8838 阅读 · 2 评论 -
【STM32CobeMX】按键-PWM-IIC屏幕-ADC采集综合应用
1.CobeMX基础配置1.1 时钟配置芯片为STM32VET6,无晶振,选用内部时钟最大可设置64MHz,手动填写64按回车即可设置完毕。1.2 FREERTOS配置任选V1,选择虚函数AS Weak为后续文件独立提供便捷;设置容量;2. 外设配置2.1 按键配置按键中断模式2.2 IIC配置虚拟IIC直接配置为IO口2.3 LED低电平使能LED2.4 ADC1中断+轮询+DMA采样ADC2没有DMA模式,这里选择ADC1;..原创 2021-11-12 17:56:06 · 700 阅读 · 0 评论 -
【STM32多路温控—第六章】ADC单通道电流检测处理/晶振处理
1. 时钟配置:1.1 Crystal/Ceramic Resonator(晶体/陶瓷晶振)1.2 BYPASS Clock Source(旁路时钟)YPASS Clock Source(旁路时钟源),选择该项,仅RCC_OSC_IN被使能,若你有一个外部时钟源的话可以采用该项。比如采用有源晶振,当用有源晶振作为时钟源,该选择哪种工作模式呢?有源晶振一般是四脚封装,电源、地线、振荡输出和一个控制端【或者悬空端】。相比无源晶体,有源晶振本身就是个完整的振荡器件,只需要供给适当的电源就原创 2021-08-18 17:25:15 · 2505 阅读 · 0 评论 -
【STM32CobeMx】利用定时器输出PWM
1. 定时器基础1.1 Counter SettingsPrescaler(16bit)分频值:将定时器之中频率分频。Counter Period : 周期计数值,按照分频后的时间进行计数。1.2 Channel InitMode :模式选择1)Mode = Toggele on match(即定时器ARR寄存器周期计数值溢出就翻转电平)Pulse : 电平跳变值。通过定时器计数,计数到Pulse时,定时电平产生反转。CH Polarity : 初始电平1.6 计算公式原创 2021-08-14 23:50:02 · 4965 阅读 · 2 评论 -
【STM32CubeMX】STM32H7-W5500-TCP
vectorvector是向量类型,可以容纳许多类型的数据,因此也被称为容器 (可以理解为动态数组,是封装好了的类)故也有这样的问题:CString str[100]与vector<CString>,哪个效率高?vector创建方法如下:第一步:进行vector操作前应添加头文件#include <vector>第二步:创建vector对象 vector<CString> vszStr...原创 2021-07-26 23:07:05 · 3017 阅读 · 1 评论 -
【STM32CubeMX】STM32H7-W5500-UDP
socket初始化UDP这里介绍以下函数getsockopt它是存在于socket.c中的。函数原型如下:int8_t getsockopt(uint8_t sn, sockopt_type sotype, void* arg)sn socket号(0-7)sotype 指向要发送的数据的缓冲区arg 缓冲区中数据的字节长度我们可以利用这个函数获得socket的状态。例如: uint8_t state; ...原创 2021-07-26 12:03:30 · 3217 阅读 · 1 评论 -
【STM32CubeMX】STM32H7-RTOS-SPI-W5500
时钟配置Clock Configuration所使用的单片机是正点原子的阿波罗底板STM32H743IIT6。我们看原理图是再29.30引脚接的25MHz的无源晶振。RCC 配置界面。以外部时钟为例,STM32CubeMX中外部时钟配置可选类型为DisableBYPASS Clock Source(旁路时钟源)Crystal/Ceramic Resonator(石英/陶瓷 晶振)三种类型,参考手册也将链接电路展示出来了,我们这里用的是无源晶振,故选择第三个方案。H..原创 2021-07-20 16:05:01 · 5894 阅读 · 4 评论 -
【STM32多路温控—第一章】STM32CobeMX搭建工程
基于STM32F103VBT6芯片,实现16路温控和13路温度采样。本章介绍STM32CobeMX的基础功能配置。原创 2021-07-12 10:41:05 · 353 阅读 · 0 评论 -
【STM32CobeMX】问题汇总
问题一1.截至5.5版本,需要jdk8的环境,不支持jdk13;2.不能同时存在jdk13与8,需要卸载jdk13。原创 2021-06-15 10:52:09 · 2528 阅读 · 3 评论 -
【STM32编程】一个定时器生成多路PWM波形的原理和方法
PWM的周期t1是一个固定值,如1ms,10ms,100ms等,在一个周期中包含了高电平t2和低电平t3,它们的关系是t2+t3=t1。改变一个周期中高电平的时间,就能达到速度或者功率调整的目的。原创 2021-06-08 17:35:53 · 5400 阅读 · 3 评论 -
【STM32CobeMX】CubeMX建立基于STM32F1VBT6的FreeRTOS
STM32F103VBT6内部时钟源RCC如果使用RTOS 使用了RTOS,默认使用SysTick;所以HAL库的时基就要用其他的定时器。 当用了RTOS,就要设置HAL的timebase为其他Timer,因为Systick会被操作系统设置为最低优先级中断,以及HAL使用了weak定义timebase的ISR中断函数,大家用同一个,会被RTOS的版本重载。 HAL时基不要选的和 RTOS的一样,RTOS默认是使用SysTick的中断来调度任务的,但是 HAL库.原创 2021-06-08 15:18:49 · 502 阅读 · 2 评论 -
【STM32CobeMX】基于STM32F103VBT6配置看门狗
基于STM32F103VBT6配置看门狗,简单说:看门狗的本质就是定时计数器,计数器使能以后一直在累加 而喂狗就是从新写入计数器的值,时计数器从新累加,若是在必定时间内没有接收到喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)。原创 2021-05-20 20:18:39 · 691 阅读 · 3 评论 -
【STM32CobeMX】基于F407的生成FreeRTOS
基于CobeMX软件生成FreeRTOS基础工程,并应用于一个温控小项目。原创 2021-03-12 18:04:59 · 892 阅读 · 0 评论