STM32 学习 ⭐⭐⭐
文章平均质量分 85
The skills of STM32 Controller
小麦大叔
这个作者很懒,什么都没留下…
展开
-
详解舵机的基本原理以及控制方法
文章目录什么是舵机?伺服控制硬件连接舵机规格SG90MG90SMG996R总结什么是舵机?舵机是伺服电机的一种,伺服电机就是带有反馈环节的电机,我们可以通过伺服电机进行精确的位置控制或者输出较高的扭矩;舵机也叫也叫 RC 伺服器,通常用于机器人项目,也可以在遥控汽车,飞机等航模中找到它们。类似舵机这样的伺服系统通常由小型电动机,电位计,嵌入式控制系统和变速箱组成。电机输出轴的位置由内部电位计不断采样测量,并与微控制器(例如STM32,Arduino)设置的目标位置进行比较;根据相应的偏差,控制原创 2020-12-05 08:23:47 · 44670 阅读 · 11 评论 -
关于PWM脉冲宽度调制的点滴总结
文章目录基本原理PWM是如何实现?分类程序实现总结基本原理PWM的全称是脉冲宽度调制(Pulse-width modulation),是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式;所以根据面积等效法则,可以通过对改变脉冲的时间宽度,来等效的获得所需要合成的相应幅值和频率的波形;具体如下图所示;由上图可知,脉冲宽度调制使用一个脉冲宽度会被调制的方波,并且波型的平均值会有所变化。如果我们考虑一个周期为 T{\displaystyle T}T 的脉冲波 f(t){\.原创 2020-11-26 21:12:34 · 11331 阅读 · 14 评论 -
SPI协议详解(图文并茂+超详细)
先说串口因为之前写过一篇UART,通用串行异步通讯协议,UART的相关资料因为UART没有时钟信号,无法控制何时发送数据,也无法保证双发按照完全相同的速度接收数据。因此,双方以不同的速度进行数据接收和发送,就会出现问题。如果要解决这个问题,UART为每个字节添加额外的起始位和停止位,以帮助接收器在数据到达时进行同步;双方还必须事先就传输速度达成共识(设置相同的波特率,例如每秒9600位)。传输速率如果有微小差异不是问题,因为接收器会在每个字节的开头重新同步。相应的协议如下图所示;如果您注意到原创 2020-11-03 01:23:31 · 265307 阅读 · 98 评论 -
I2C协议靠这16张图彻底搞懂(超详细)
I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980年代初设计的,方便了主板、嵌入式系统或手机与周边设备组件之间的通讯。由于其简单性,它被广泛用于微控制器与传感器阵列,显示器,IoT设备,EEPROM等之间的通信。原创 2020-10-20 20:34:47 · 71346 阅读 · 17 评论 -
STM32 基于 CubeMX配置GPIO点亮LED灯(超级详细+图文并茂)
小白都能看懂,使用CubeMX配置GPIO点亮LED原创 2020-04-08 19:59:43 · 17267 阅读 · 37 评论 -
【FreeRTOS学习01】CubeIDE快速整合FreeRTOS创建第一个任务
整个专栏主要是博主结合自身对FreeRTOS的实战学习以及源码分析,基于STM32F767 Nucleo-144平台,在CubeIDE下进行开发,结合官方的HAL库,将硬件环节的问题减少到最小,将精力主要放在RTOS的学习上原创 2020-04-01 23:12:10 · 13370 阅读 · 26 评论 -
STM32F767ZI NUCLEO144 基于CubeIDE快速开发入门指南
刚入手的NUCLEO-F767ZI;整合官网资源,理清思路,便于快速进行快发;原创 2020-03-30 20:07:14 · 9334 阅读 · 29 评论 -
一文教你如何在ubuntu上快速搭建STM32 CubeIDE环境(图文超详细+文末有附件)
在快速ubuntu上安装cubeide你值得拥有;适合对linux系统还不是很熟悉的同学;原创 2020-03-27 22:08:08 · 13616 阅读 · 29 评论 -
STM32 使用st-link调试遇到写保护 Flash Timeout 问题的解决思路
本文介绍了如何解决STM32芯片Flash写保护导致无法下载程序,无法在线调试的问题;如果您遇到相同的问题,希望本文可以带来一些帮助;原创 2020-03-26 20:38:49 · 17496 阅读 · 15 评论 -
STM32 OSAL操作系统抽象层的移植
OSAL(operating system abstraction layer),操作系统抽象层,是一种以实现多任务为核心的系统资源管理机制,实现了类似RTOS的某些功能,但并不能称之为真正意义上的RTOS,因为其本身还不支持任务的挂起,任务的抢占等等功能,但是这种机制,实现的代码十分精简,占用资源也非常少,对于资源十分紧张的嵌入式平台,也可以完成比较复杂的逻辑功能。原创 2020-03-06 12:10:08 · 10563 阅读 · 11 评论 -
【STM32系列汇总】博主的STM32实战快速进阶之路(持续更新)
基于STM32的电机控制器的项目实战总结原创 2020-02-25 18:32:28 · 17160 阅读 · 24 评论 -
STM32 CubeIDE无法进行调试的问题
解决了由于一个很容易忽视的细节最终导致系统配置存在错误造成STM32 CubeIDE无法进行调试的问题原创 2020-03-05 12:13:51 · 22305 阅读 · 17 评论 -
STM32 CubeIDE快速创建工程(图文详解)
使用STM32CubeIDE快速创建STM32的HAL库工程。原创 2020-03-01 13:10:44 · 28948 阅读 · 14 评论 -
STM32 Cube之旅-尝试新的开发方式
曾几何时,ST刚推出CubeMX的时候,自动生成的外设初始化代码都会有这样那样的错误,而如今,随着软件的迭代升级,Cube生态也越来越完善,并且使用也越来越方便,ST推出的STM32Cube Ecosystem提供了免费整套的开发软件工具和嵌入式软件包,其中可以从芯片的外设配置,程序开发,程序下载以及系统监视一系列的功能。如下图所示;STM32 CubeMX 几乎STM32的设备都可以使用这...原创 2020-02-29 23:28:55 · 6562 阅读 · 3 评论 -
STM32 外部中断详解(原理+配置代码)
本文介绍了STM32基于标准外设库的外部中断配置,以及基于参考手册如何更加寄存器配置外部中断原创 2020-02-27 22:24:38 · 52414 阅读 · 16 评论 -
STM32 TIM高级定时器死区时间的计算
STM32 TIM高级定时器的互补PWM支持插入死区时间,本文将介绍如何计算以及配置正确的死区时间。原创 2020-02-27 20:19:08 · 15538 阅读 · 14 评论 -
STM32 使用IQmath实现SVPWM
文章目录SVPWMIQMATHIQmathLib测试部分程序附件SVPWMSVPWM是空间矢量脉宽调制(Space Vector Pulse Width Modulation)的简称,通常由三相逆变器的六个功率开关管组成,经过特定的时序和换相所所产生的脉冲宽度调制波,最终输出的波形可能会十分接近理想的正弦波形。具体如下图所示;左侧为复平面,即空间矢量,右侧为时域的正弦波形;关于SVPWM原理的文章非常多,这里可以推荐一下网上一个非常不错的教程《SVPWM的原理及法则推导和控制算法详解第五修改版》,原创 2020-01-19 22:57:16 · 25133 阅读 · 37 评论 -
STM32 TIM1高级定时器RCR重复计数器的理解
`TIMx_RCR`重复计数器寄存器,重复计数器只支持高级定时器`TIM1`和`TIM8`,下面看标准外设库的`TIM`结构体的封装;对重复计数器的作用进行介绍。原创 2020-01-07 20:02:24 · 19902 阅读 · 11 评论 -
hex文件格式总结
hex文件格式总结本文会结合具体实践过程中遇到的问题,对hex文件做一个新的认识。什么是hex文件?hex是用于文件格式是intel规定的标准,总体来说,hex是文本文件,经常在微控制器的固件开发中看到hex的身影,例如基于STM32F103硬件,使用MDK开发的话,该软件就可以生成hex文件;如下图所示;这是一个简单的STM32标准外设库工程,代码里什么都没做,具体如下;#inclu...原创 2020-01-06 18:53:13 · 5490 阅读 · 0 评论 -
STM32 Bootloader基于ymodem传输协议串口IAP升级详解
预备知识基于标准外设库(STM32F10x_StdPeriph_Lib_V3.5.0)的IAP升级相关资料可以参考 IAP ST官方资料汇总。STM32升级的三种方式:IAP,ICP,ISP;本文需要实现STM32的Bootloader基于ymodem协议通过串口进行固件升级。硬件:stm32f103cbt6软件:STM32F10x_StdPeriph_Lib_V3.5.0原创 2019-12-31 23:54:35 · 9513 阅读 · 17 评论 -
STM32 串口USART DMA方式发送接收数据
`DMA`,直接内存存取,类似用它的双手释放`CPU`的灵魂,所以,本文通过`USART3`进行串口收发,接受使用DMA的方式,无需`CPU`进行干预,当接受完成之后,数据可以直接从内存的缓冲区读取,从而减少了`CPU`的压力。具体的代码实现如下:- `usart_driver.h` 封装了接口,数据接收回调函数类型,基本数据结构等;- `usart_driver.c` 函数原型实现,中断服务函数实现等;原创 2019-12-28 22:36:09 · 17201 阅读 · 5 评论 -
STM32 标准库3.5修改默认外部8M晶振为16M晶振
ST官方标准库V3.5默认的外部晶振频率为8M,实际使用中外部晶振需要修改为16M;经过实验,修改有效。原创 2019-12-28 08:39:27 · 4675 阅读 · 3 评论 -
STM32 IAP 升级官方资料汇总
标准库版本 STM32F10xxx in-application programming using the USART (AN2557) STM32F2xx in-application programming using the USART (AN3374) STM32F4 in-application programming (IAP) using the USART (AN3965...原创 2019-12-26 17:32:55 · 5140 阅读 · 6 评论 -
STM32 进行软件复位的方法
platform:stm32f103xxinclude:core_cm3.h/** \brief System Reset \details Initiates a system reset request to reset the MCU. */__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void){ __DS...原创 2019-12-24 11:44:37 · 13429 阅读 · 0 评论 -
STM32 TIM 多通道互补PWM波形输出配置快速入门
platform:stm32f103cb前言在做三相逆变的时候,需要软件生成SVPWM波形,具体的算法需要产生三对互补的PWM,这样可以驱动六个开关元件,stm32f103中的TIM1定时器就支持这种做法,并且PWM产生的原理官方DEMO带死区的互补PWM带刹车功能的PWM参考...原创 2019-11-21 19:43:20 · 12810 阅读 · 3 评论 -
STM32 TIM1高级定时器配置快速入门
layout: posttags: [STM32]comments: true文章目录layout: posttags: [STM32]comments: true重点内容时基单元计数模式重点内容不管是基于标准库还是直接操作寄存器,因为TIM定时器的功能比较多,这里单纯只从定时器的角度进行学习,这里需要重点关注的地方应该有以下几点:定时器时钟频率的计算;计数器计数的模式,以及...原创 2019-11-21 18:52:43 · 9198 阅读 · 0 评论 -
STM32 ADC多通道规则采样和注入采样
layout: posttags: [STM32]category: STM32comments: true什么是ADC?Analog to Digital Converter,将模拟信号转换成数字的模数转换器,后面可能还会接触到DAC,恰恰相反,是将数字信号转换成模拟信号。具体的原理可以自行找搜索引擎,可以得到更好的答案。STM32 ADC的特性参考手册给出ADC的功能十分丰富,...原创 2019-11-14 20:46:43 · 18528 阅读 · 0 评论 -
STM32 时钟树配置快速入门
layout: posttags: [STM32]comments: true文章目录layout: posttags: [STM32]comments: true为什么要了解时钟树?树的根标准库的时钟配置外部时钟源16MSetSysClockTo72patch其他细节为什么要了解时钟树?最近项目开发的时候,外部时钟源是16MHz,结果配置错了系统时钟,STM32F103的系统时钟...原创 2019-11-05 21:57:56 · 6070 阅读 · 0 评论 -
STM32 TIM 编码器模式采集编码器信号
## 什么是正交解码?对于常用增量式编码器,光学编码器,采用带槽圆盘,一侧是发射光线的发射端,而光电晶体管在相对的一侧。当圆盘转动时,光程被阻断,得到的脉冲指示轴的转动和方向。通常的说法是1000线的编码器,即转一圈会产生1000个方波脉冲,马盘上刻了1000个栅格,中间被镂了1000个空,举个例子,未免显得有点啰嗦,下面直奔主题,至于什么是编码器还是搜索引擎说的明明白白。增量编码器通常有A,B两相信号,相位相差90°,所以也叫正交,还有一个复位信号是机械复位,即转了一圈,复位信号会有一个跳变沿。具体如原创 2019-10-26 10:46:00 · 11998 阅读 · 6 评论 -
STM32 标准库V3.5启动文件startup_stm32f10xxx.s分析
layout: posttags: [STM32]comments: true文章目录layout: posttags: [STM32]comments: true前言分析startup_stm32f10x_md.s汇编指令EQUAREASPACEDCDPROCLDR常见的转移指令源码分析前言这里以stm32f103为硬件平台,搭建了stm32f1系列的标准库,版本是V3.5,在路...原创 2019-10-25 21:43:33 · 6631 阅读 · 0 评论