草庐IT

STM32 HAL高级定时器正交编码模式案例

STM32HAL高级定时器正交编码模式案例🔖基于stm32F030RBT6单片机采用高级定时器1,编码器模式,测试EC11编码器。🎬EC11测试效果:🌿STM32定时器编码器有3种映射模式:✨本次采用的是上面的模式3,EC11编码器每转动一小格,TIM1定时器可以捕获到4个脉冲信号,也就是定时器捕获4个脉冲信号就代表编码器旋转了一小格。🌿EC11编码器原理图🛠STM32CubeMX配置🌿使能高级定时器TIM1,配置编码器模式。🔧参数配置🌿编码器引脚配置:🌿EC11编码器按键引脚配置🌿中断配置📓功能代码实现部分📝中断回调部分voidHAL_TIM_IC_CaptureCallback(TIM_H

第三章 USB应用笔记之USB鼠标(以STM32 hal库为例)

第三章USB应用笔记之USB鼠标(以STM32hal库为例)提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录第三章USB应用笔记之USB鼠标(以STM32hal库为例)前言一、STM32USB库简单讲解工程目录结构.C文件分析二、实操代码《鼠标》一、STM32CubeMX设置USB时钟设置USB使能UBS功能选择二、代码部分添加代码鼠标发送给PC的数据解析实验效果总结前言STM32F1系列是意法半导体(STMicroelectronics)推出的一款微控制器系列,具有广泛的应用领域。在STM32F1系列中,一些型号支持USB功能,以下是STM32F1系列USB的一些特点

STM32MP135平台基于HAL库创建Bare Metal裸机工程并从SD卡启动

STM32MP135平台基于HAL库创建BareMetal裸机工程并从SD卡启动1.引言首先引用ST官方的介绍:STM32MP135微处理器(MPU)基于单Arm®Cortex®-A7内核,运行频率可达1GHz。STM32MP13MPU专门面向入门级Linux、裸机或RTOS系统设计,并已预先集成MicrosoftAzureRTOS。”STM32MP135处理器(以下简称MP135)本是一块MPU,主频可达1GHz(我看到的手册及时钟配置下最高实际为900MHz),本该运行Linux内核,这次官方支持了BareMetal,也就是裸机HAL库,可以实现利用MPU丰富外设资源及实际需求的同时,进一

c++ - F1后跳转到QtCreator中正确的C++ STL文档页面?

QtCreator附带了很酷的Qt相关文档和功能:当您选择一个Qt类并按F1时,它会打开一个侧边栏,其中包含该类的特定文档页面。现在,QtCreator让我安装C++文档(可在此处找到:http://qt-project.org/wiki/Qt_Creator_Documentation_Gallery-我已经尝试过en.cppreference.com版本)。但是,选择一个STL类并按F1只会打开默认的通用页面列表,有点像文档的“主页”。是否有可能将C++STL文档的功能模拟到Qt文档之一?此外,我已经在Ubuntu12.04上运行的QtCreator2.4中对其进行了检查。它可能在

STM32G030F6P6读写flash失败问题(HAL)

STM32G030是F0系列的升级版,其在性能上比F0要好很多,具体G0参数如下:        最开始做项目选用的单片机是STM32F030F4P6,但是在后期使用中发现,我的FLASH(16K)不够用了,就选择了STM32G030F6P6来进行项目使用,主要是价格便宜,资源够用。    在F030使用的flash拿到G030上来发现不可使用,就进行了一些修改,但是这个时候就出现了报错,在进行flash擦除的时候报错HAL_FLASHEx_Erase(&EraseInitStruct,&PageError);通过发现擦除有问题,我就去查看其底层函数。HAL_StatusTypeDefHAL_

STM32f1之简单控制继电器模块(附源码)

目录前言 一、继电器的使用(重要!!!)二、写个代码检验三、源码--百度云前言第一个粉丝会是谁呢?期待ing相信很多志同道合的小伙伴们已经找到了学习STM32的好途经(灵光一闪刷到我的博客)了,接下来的时光里,我会讲到一些我对一些模块的使用,同时附上源码还有我的心得。没错,今天我讲的就是继电器的使用。 一、继电器的使用(重要!!!)其实继电器简单来说就是一个开关,VCC表示电源正极、GND表示电源负极、IN表示信号输入脚,COM表示公共端,NC(normalclose)表示常闭端,NO(normalopen)表示常开端一般情况下是常闭状态这里简单地描述一下大部分的继电器模块:Vcc接电源正极,

(CubeMX)STM32使用FREERTOS,在中断函数中使用HAL_Delay()函数导致程序卡死问题解决记录

1.RTOS占用systick,所以系统定时器需要配置为其他定时器。否则CubeMX会报错。 2.调整系统定时器为TIM1后,此时,定时器中断优先级默认为最低15,导致在其它高于此优先级的中断中,使用HAL_Delay()函数时,程序卡死。调高TIM1定时器中断优先级即可。 

联想LXH-JME2209U键盘Linux下解锁F1-F12

部分联想键盘F1-F12的问题可能是因为F1-F12对非程序员用处不大,部分键盘会在F1-F12的位置定义一些功能键,如调节音量、屏幕亮度等,日常需要同时按下Fn和相应的键才能触发F1-F12的功能。笔记本内置键盘和绝大多数的外接键盘都在硬件层面实现了FnLk的功能,即通过同时按下Esc+Fn的方式切换这些键的默认行为,就像大小写锁定一样。但是联想的许多键盘的这种切换是通过Windows驱动来实现的,这就意味着macOS和Linux无法方便地进行这个切换。对于程序员而言,功能键可有可无,但是F1-F12显然是必要的,也就是要把这些键的默认行为切换到F1-F12。解决方法所幸,GitHub仓库h

STM32 HAL库 SPI主从双机通信

一、简介最近因为项目需求,需要在一块板子内实现一个主机和五个从机的通信;主机平台选用的是STM32F407VGT6,从机平台选用的是STM32F103C8T6;通信总线选用的是SPI总线。在构想是觉得采用SPI进行主从通信会很简单,但在实际开发的过程中,各种坑,通信时而正常时而混乱。不过在不断探究中,也逐渐发现了,各种问题所在,借此记录下来,希望能帮助一些兄弟在开发中避免一些坑。本次实现的平台如下:通信主机:芯片:STM32F103RCT6硬件平台:野火mini开发板通信从机:芯片:STM32F103C8T6硬件平台:淘宝STM32F103C8T6最小系统开发板软件:HAL库MDKSTM32C

STM32故障处理——HAL_Delay卡死

问题描述笔者准备写一个按键控制LED亮灭的简单程序,但是程序却卡死在了用于消抖的HAL_Delay(20)处问题所在检查发现是因为HAL_Delay()需要用到SysTick定时器,而本人使用的STM32CubeMX对SysTick的初始中断优先级设为了15(最低),所以按键中断进入后调用HAL_Delay()函数发生卡死解决方案打开STM32CubeMX,进入Pinout&Configuration->SystemCore->NVIC,将SysTick的优先级设置得比按键中断更高即可前面的是抢占优先级,后面的是响应优先级简单来说就是比谁的数字小,小的优先级高。比完抢占优先级比响应优先级。