单片机
文章平均质量分 71
STM32、GD32、MM32等单片机驱动外围器件教程与源码,STM32CUBEMX系列教程记录 。
觉皇嵌入式
这个作者很懒,什么都没留下…
展开
-
嵌入式项目实战:工程师必备技能之NTC热敏电阻的使用与温度转换详解
~~~~~~~NTC(Negative Temperature Coefficient),意为是负的温度系数,泛指负温度系数很大的半导体材料或元器件。~~~~~~~~通常我们提到的NTC是指负温度系数热敏电阻,简称NTC热敏电阻。又被称为负温度系数热敏电阻,是一类电阻值随温度增大而减小的一种传感器电阻。功率型NTC热敏电阻补偿型NTC热敏电阻测温型NTC热敏电阻用来测温。原创 2024-03-20 11:25:02 · 3710 阅读 · 0 评论 -
Air32 | 合宙Air001单片机内部FLASH读写示例
合宙Air001单片机内部FLASH读写示例,代码已经通过测试,开发环境KEIL-MDK 5.36。原创 2023-08-07 13:20:30 · 1216 阅读 · 2 评论 -
STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期
以前写过一篇博文,介绍的是如何使用定时器的输入捕获功能测量脉冲的宽度以及周期,适合测量某个脉冲或者测量按键按下时候的保持时间(见上面链接博客),不适合测量连续输出的脉冲场景。STM32的定时器还存在一个PWM输入模式,只要将未知PWM波接入到定时器输入模式的引脚上,会自动算出占空比和周期,相当于示波器探针了。原创 2023-04-25 14:56:28 · 5219 阅读 · 0 评论 -
STM32F407 + LAN8720A + LWIP 实现TCP服务器
STM32F407 + LAN8720A + LWIP 实现TCP客户端环境说明:开发板:某宝买的,STM32F407IGSTM32CUBEMX5.6HAL Lib Version 1.25(一)配置时钟(二)配置调试串口(三)配置以太网ETH(1)基础配置顺序依次说明:LAN8720A使用的是RMII接口进行配置寄存器自动重连使能MAC地址LAN8720A的物理地址(类似IIC的从设备地址),可配置为0或者1,由LAN8720A的RXER/PHYAD0引脚控制原创 2020-05-21 10:26:35 · 14003 阅读 · 10 评论 -
STM32CubeMX | HAL库的ADC多通道数据采集(轮训、DMA、DMA+TIM)、读取内部传感器温度
STM32使用HAL库的ADC多通道数据采集(DMA+非DMA方式)ADC模式介绍:扫描模式: 多通道采集必须开启,这一项CUBE已经默认设置好了。这个模式就是自动扫描你开启的所有通道进行转换,直至转换完。但是这种连续性是可以被打断的,所以就引出了间断模式。连续模式: 在CUBE中选中ENABLE就是连续模式,DISABLE就是单次模式。这个模式顾名思义,如果是连续模式那么就是一直在扫描多通道进行采集;如果是单次模式,多通道扫描采集一次后就停止采集了不会从头再来。间断模式: 可以将多个通道进行分原创 2020-08-20 14:54:22 · 50106 阅读 · 66 评论 -
STM32中断相关概念阐述
CM3最大支持到了256个等级的中断优先级但是实际上用不到这么多,所以大多数采用了M3内核的芯片会对其进行精简设计,ST就是裁掉了这个寄存器的低4bit,只用高4bit来表示优先级,以达到减少优先级数的目的,而4bit所能代表的最大数就是16,所以说STM32支持16级的可编程中断。STM32使用了ARM Cortex M3内核并对其进行了裁减,使之在原本支持240个外部中断裁减变成了68个外部中断,外加内部的16个中断,一共16+68=84个中断。这是NVIC的重要组成部分。这就引入了中断优先级的概念。.原创 2022-08-05 16:50:37 · 3973 阅读 · 0 评论 -
STM32CubeMX | Modbus RTU 主机协议栈实现(国产单片机、FreeModbus无缝使用)
STM32CubeMX | Modbus RTU 主机协议栈实现目录1、前言2、协议栈API介绍2.1 控制结构2.2 主机读线圈状态(CMD1)2.2 主机读离散量输入(CMD2)2.2 主机读保持寄存器(CMD3)2.2 主机读输入寄存器(CMD4)2.2 主机写单个线圈(CMD5)2.2 主机写单个寄存器(CMD6)2.2 主机写多个线圈(CMD15)2.2 主机写多个寄存器(CMD16)3、移植前的基础工程生成4、移植主机协议栈5、移植测试验证1、前言 &原创 2022-05-01 11:26:02 · 8033 阅读 · 23 评论 -
STM32CubeMX | STM32F1系列使用HAL库手动移植RTThread-Nano实时操作系统
STM32CubeMX | STM32使用HAL库手动移植RTThread-Nano实时操作系统目录STM32CubeMX | STM32使用HAL库手动移植RTThread-Nano实时操作系统1、基础工程建立2、移植rtthread-nano1、基础工程建立首先通过STM32CubeMX建立基础工程,首先开启RCC并将时钟配置到72M主频:配置串口1并开启接收中断:在配置个LED灯的IO:将HAL用到的系统滴答定时器切换成定时器7,因为SysTick定时器我们要给rtthread原创 2022-04-25 15:26:45 · 3555 阅读 · 1 评论 -
STM32CubeMX | 适用于嵌入式平台的Modbus主机实现(基于FreeModbus简单修改而来)
STM32CubeMX | 适用于嵌入式平台的Modbus主机实现1、代码移植modbus和freemodbus移植使用可以参考我的另一篇博客,本篇文章就不在介绍。网上有很多从机的实现,找主机却很少,要么有系统限制,要么还要基于某个依赖才能使用。鉴于此,我在FreeModbus(版本为V1.6)的基础上做了修改,新增了主机模式下的API,代码风格与源代码保持一致,实现方式上也与原代码保持一致,也是基于回调函数和事件的形式。移植的时候与从机时候的移植没有区别,我设置了一个全局宏定义MB_USE_M原创 2022-04-14 17:54:35 · 3469 阅读 · 8 评论 -
STM32CubeMX | 利用KEIL将代码下载能进内存(SRAM)实现RAM启动调试代码、解除读保护(Read Protection)功能
STM32CubeMX | 利用KEIL将代码下载能进内存(SRAM)实现解除读保护目录STM32CubeMX | 利用KEIL将代码下载能进内存(SRAM)实现解除读保护1、介绍2、KEIL配置实现代码下载进SRAM3、HAL库解除/设置读保护代码实现开发环境:keil-mdkstm32f103c8stm32cubemx1、介绍一般情况下,我们在KEIL-MDK中开发时,调试下载程序默认是把程序下载进FLASH中运行的,CODE和RW-data的内容被写进FLASH存储,单片机掉电数原创 2022-04-11 17:10:13 · 7467 阅读 · 4 评论 -
STM32CubeMX | STM32使用DAC+DMA+TIM生成10KHz正弦波
STM32CubeMX | STM32使用DAC+DMA+TIM生成10KHz正弦波目录STM32CubeMX | STM32使用DAC+DMA+TIM生成10KHz正弦波前言工程配置时钟配置到72M主频:配置DAC配置DMA配置定时器工程环境:STM32F103RCKEIL MDK 5.20STM32CubeMX 6.0前言开始教程之前先回顾一下初中学过的三角函数相关内容。正弦波曲线的函数公式是:y=sin(x)y的范围区间是[-1:1]x的取值范围是任意实数原创 2022-01-06 14:55:07 · 8900 阅读 · 15 评论 -
STM32CubeMX | STM32利用HAL库实现标准库<time.h>的时间函数使用
STM32CubeMX | STM32利用HAL库实现标准库<time.h>的时间函数使用C标准时间函数库头文件:#include <time.h>数据结构:struct tm { int tm_sec; /* 秒,范围从 0 到 59 */ int tm_min; /* 分,范围从 0 到 59 */ int tm_hour; /* 小时,范围从 0 到 23 */原创 2021-12-30 10:46:00 · 2884 阅读 · 0 评论 -
关于自制CMSIS_DAP离线下载器下载算法的代码说明:“0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA“
关于自制CMSIS_DAP离线下载器下载算法的代码说明:“0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA”在自制CMSIS_DAP离线下载器的时候,利用FLM文件生成下载算法里面,每个下载算法都会有一个32个字节的头部"0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA",除去这32个字节的头部数据才是真正的从flm文件中原创 2021-12-23 10:23:02 · 2246 阅读 · 1 评论 -
STM32CubeMX | MultiButton:一个小巧简单易用的事件驱动型按键驱动模块实现按键单机、双击、多击、长按
STM32CubeMX | MultiButton:一个小巧简单易用的事件驱动型按键驱动模块实现按键单机、双击、多击、长按目录STM32CubeMX | MultiButton:一个小巧简单易用的事件驱动型按键驱动模块实现按键单机、双击、多击、长按简介STM32基础工程生成移植使用效果测试开发测试环境:WIN10STM32F103RBSTM32CubeMX简介MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程原创 2021-11-22 10:38:43 · 2423 阅读 · 0 评论 -
STM32CubeMX | STM32基于HAL实现USB模拟U盘
STM32CubeMX | STM32基于HAL实现USB模拟U盘目录STM32CubeMX | STM32基于HAL实现USB模拟U盘(1)工程配置(2)代码修改环境说明:win10STM32F103C8T6STM32CUBEMX6.1.1(1)工程配置时钟配置:USB配置:这里注意,由于USB使用的内存申请方式是静态数组,所以这里我们不需要设置堆空间。然后生成代码就可以了。(2)代码修改代码修改也是比较简单的,就光修改一个文件:usb_storage_if.原创 2021-11-10 10:55:25 · 3347 阅读 · 4 评论 -
STM32CubeMX | SGP30:基于STM32使用HAL库对空气质量传感器进行驱动(硬件II2+模拟IIC)
SGP30:基于STM32使用HAL库对空气质量传感器进行驱动(硬件II2+模拟IIC)目录SGP30:基于STM32使用HAL库对空气质量传感器进行驱动(硬件II2+模拟IIC)(1)传感器实物(2)传感器参数(3)传感器接口(4)STM32工程配置(5)代码编写(1)传感器实物官方技术手册:https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/9_Gas_Sensors/Datasheets原创 2021-11-10 10:27:11 · 11787 阅读 · 33 评论 -
FATFS:一个兼容windows的嵌入式文件系统API使用详解
FATFS:一个兼容windows的嵌入式文件系统API使用详解FATFS官网:http://elm-chan.org/fsw/ff/00index_e.html本篇博客不讲解移植教程,只讲解常用API如何使用。(1)API分类文件操作类:目录操作类:文件和目录管理:文件系统管理:(2)常用API说明1、挂载文件系统与解除挂载/** * 挂载文件系统 * @param fs 文件系统句柄 * @param path 逻辑驱动器号码 * @param op原创 2021-11-04 10:20:07 · 1293 阅读 · 0 评论 -
十分钟快速自制CMSIS_DAP仿真器~将ST-LINK-V2变身DAP仿真器~
十分钟快速自制CMSIS_DAP仿真器,将ST-LINK-V2变身DAP仿真器!(一)简介说到单片机仿真器(下载器)首先想到的就是J-LINK和ST-LINK,很多人可能还是第一次听说DAP仿真器,那么就先介绍一下。CMSIS DAP是ARM官方推出的开源仿真器,支持所有的Cortex-A/R/M器件,支持JTAG/SWD接口。有以下特点:完全开源,没有版权限制,所以相应的价格会很便宜不需要安装驱动,即插即用在新版本的DAP里集成了串口,除了下载调试外还能充当USB转串口模块,一机两用性能原创 2021-09-18 13:58:54 · 28933 阅读 · 69 评论 -
AT指令集CREG、CGREG、CEREG的区别
AT指令集CREG、CGREG、CEREG的区别CREG:针对所有网络CGREG:针对GPRS的网络注册信息,可以简单理解为2G网络CEREG:针对EPS网络的注册信息 (EPS是3GPP标准委员会在第4代移动通信中出现的概念),可以简单理解为4G网络使用CAT1或NB模块查询网络注册状态时,根据你自己实际的模块是4G网络的还是2G网络的进行指令查询。ends…...原创 2021-09-15 11:50:58 · 12496 阅读 · 0 评论 -
LittleFS:一个完整的嵌入式文件系统介绍、移植使用教程
LittleFS - 一个高度完整的嵌入式文件系统、移植使用教程1、介绍源码下载地址:https://github.com/littlefs-project/littlefs/tags截止2021年9月15日10:21:17,最新版本为2.4.1,当前移植使用教程基于2.4.1版本为例。LittleFS 由ARM官方发布,ARM mbedOS的官方推荐文件系统,具有轻量级,掉电安全的特性。主要用在微控制器和flash上,特点如下:掉电恢复,在写入时即使复位或者掉电也可以恢复到上一个正确的状态。原创 2021-09-15 11:25:52 · 26433 阅读 · 22 评论 -
单片机IO模拟串口发送数据
单片机IO模拟串口发送数据由于项目上用的STM32单片机串口资源不够用,但是还是想看调试输出,所以就多引出了一个IO,使用IO模拟串口发送数据的时序来当做串口打印用了,本章实验工程以8bit数据位、1bit停止位,无奇偶校验、无流控,波特率9600bps为例,串口的发送数据时序流程如下图:串口发送的时序是非常简单的,TX引脚空闲时为高电平,拉低一下是启动发送,随后发送8bit,最后拉高,模拟IO的实现需要的就是延时的精准度,以9600bps波特率为例,一秒能发送9600bit,那么发送1bit的时间原创 2021-09-07 17:03:25 · 2240 阅读 · 0 评论 -
GD32F103读写内部FLASH
GD32F103读写内部FLASH测试环境:STM32F103C820KBytes RAM64KBytes FLASH头文件/** * @brief Create by AnKun on 2019/10/10 */#ifndef GDFLASH_H__#define GDFLASH_H__#include "gd32f10x.h"/// 移植修改区 ////* FLASH大小:64K */#define GD32FLASH_SIZE 0X00010000原创 2021-08-26 16:34:52 · 8988 阅读 · 9 评论 -
STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片
STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片STM32基础工程生成首先使用STM32CUBEMX生成STM32的基础工程,配置时钟到72M主频:配置SPI前,首先查看WK2124的芯片手册,手册里面说明了WK2124的SPI最高支持到10M并且使用SPI模式0,SPI的模式0就是时钟空闲电平为低电平且在第一个时钟延采样:所以STM32CUBEMX需要这样配置:IO配置:WK2124的硬件复位引脚,这个引脚最好接上,使用STM32的IO进行控制WK2124原创 2021-07-12 16:43:27 · 2618 阅读 · 3 评论 -
STM32CubeMX | 基于STM32使用HAL库W25Q128驱动程序
STM32基于HAL库W25Q128驱动程序在头文件中简单修改一下片选引脚IO即可使用。源文件/////////////////////////////////////////////////////////////////////////////////////////////////////////////** * @file w25qxx.c * * @brief Create by AnKun on 2020/6/18 * */#include "w25qxx.h"#i原创 2021-07-09 14:04:43 · 3706 阅读 · 0 评论 -
国产单片机系列:上海灵动微电子MM32使用笔记
上海灵动微电子MM32使用笔记 ~~~~~~~~ 原本项目上使用了STM32F031F6P6这一款单片机,奈何ST的芯片疯涨所以换了国产灵动微电子的MM32F031F6P6,随笔分享一下使用该芯片的一些注意事项。我以MM32F031系列单片机为例,说一下使用情况。这款国产单片机兼容ST同型号,ST的最高到48M主原创 2021-06-30 16:08:48 · 6715 阅读 · 3 评论 -
STM32CubeMX | STM32独立开门狗(IWDG)HAL使用详解
HAL库STM32独立开门狗(IWDG)使用详解看门狗介绍介绍:看门狗其实就是一个定时器,给他设置一个定时值,它会逐渐递减,递减到0后就会进行芯片复位,在看门狗定时器还没到达0时重新给他赋值的这个操作就叫喂狗。其实不管是单片机这样,大多数带看门狗的芯片实现都是这样的。作用:防止程序发生死循环,或者程序跑飞。STM32看门狗介绍STM32包含两种开门狗:窗口看门狗(WWDG)独立开门狗(IWDG)两者区别是窗口开门狗如果超时没有喂狗是触发中断,而独立开门狗是直接进行芯片复位。时钟来源原创 2021-06-11 09:29:23 · 7548 阅读 · 3 评论 -
STM32CubeMX | 基于STM32使用HAL库实现USB组合设备之多路CDC
STM32 HAL库实现USB组合设备之多路CDC实现目录STM32 HAL库实现USB组合设备之多路CDC实现原创 2021-04-27 14:56:40 · 2948 阅读 · 10 评论 -
STM32CubeMX | 基于STM32使用HAL库实现USB组合设备CDC+MSC
STM32 HAL库实现USB组合设备CDC+MSC目录STM32 HAL库实现USB组合设备CDC+MSC原创 2021-04-23 16:59:58 · 7452 阅读 · 7 评论 -
STM32 USB相关知识扫盲
STM32 USB相关知识扫盲1、基础知识STM32基础型(F1系列)所带的USB是全速。2、电气属性USB的通信都是由主机发起的,这一点与IIC协议是类似的。2.1 数据线USB使用差分传输模式,有两条数据线,分别是:USB数据正信号线,USB Data Positive,即USB-DP线,简写为D+USB数据负信号线,USB Data Minus, 即USB-DM线,简写为D-剩下的就是电源线(5V-Vbus)和地线(GND)。2.2 USB主机是如何识别设备是高速设备/全速原创 2021-04-23 14:54:09 · 20287 阅读 · 10 评论 -
C语言解析FLM(ELF)格式文件
运行效果flmparse.c/* * flmparse.c * * Created on: 2021年4月10日 * Author: hello */#include <stdio.h>#include <stdint.h>#include <fcntl.h>#include <unistd.h>#include <ctype.h>#include "elf.h"#define FILENAME "..原创 2021-04-10 15:23:35 · 8892 阅读 · 12 评论 -
关于STM32调试器CMSIS_DAP的使用及注意事项
关于STM32调试器CMSIS_DAP的使用及注意事项说明最近在做了一个DAP调试器,完全开源的方案,大部分代码都是由STM32CUBEMX生成的,使用的STM32CubeIDE作为开发环境,集成共以下四种功能:在线模式(在线调试用)离线模式(脱机下载)U盘模式(用于离线模式时存放固件)串口模式(USB转TTL串口功能)目前使用了正点原子的mini开发板做的测试,代码已经编写完毕并且调试通过,准备画个板子打个小板真正的做出实物来。我为了节省IO所以使用的SWD方式,并且SWDIO和SW原创 2021-04-01 09:20:23 · 12156 阅读 · 1 评论 -
STM32CubeMX | 快速实现STM32 USB虚拟串口功能(回环测试、USB转TTL的功能)
STM32利用STM32CUBEMX快速实现USB虚拟串口回环测试目录STM32利用STM32CUBEMX快速实现USB虚拟串口回环测试1、配置时钟2、开启USB3、开启USB设备:虚拟串口4、生成工程5、修改代码实现回环收发数据测试环境:STM32F103RBSTM32CUBEIDE1.5.11、配置时钟2、开启USB3、开启USB设备:虚拟串口4、生成工程5、修改代码实现回环收发数据测试在usbd_cdc_if.c文件中新定义一个结构体:USBD_CDC_Line原创 2021-03-17 17:07:40 · 4827 阅读 · 0 评论 -
STM32实战项目:HAL_RCC_OscConfig中程序卡死问题解决办法
STM32实战项目经验:HAL_RCC_OscConfig中程序卡死问题解决办法工程环境STM32CUBEIDESTM32F415VG现象复现项目中一个是IAP程序,另一个是APP程序,两个程序都是使用STM32CubeIDE生成,当程序跳转到APP中并且执行到函数SystemClock_Config中的时候,在初始化锁相环调用HAL_RCC_OscConfig函数的时候返回HAL_ERROR或者直接卡死在里面。为什么在IAP中可以初始化通过,但是在APP中却通不过,查阅STM32F4xx原创 2021-03-12 17:18:00 · 18812 阅读 · 17 评论 -
STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例)
STM32F1系列使用HAL库RTC时钟唤醒低功耗STOP和STANDBY模式目录STM32F1系列使用HAL库RTC时钟唤醒低功耗STOP和STANDBY模式(一)低功耗模式介绍1、睡眠模式2、停止模式3、待机模式4、快速应用了解(二)RTC周期闹钟唤醒STOP模式不会使用HAL库驱动RTC可以先看这里:https://blog.csdn.net/qq153471503/article/details/111660338(一)低功耗模式介绍STM32三种低功耗模式:睡眠模式停止模式待机原创 2020-12-28 15:55:28 · 11488 阅读 · 12 评论 -
STM32CubeMX | 基于STM32使用HAL库驱动RTC时钟及闹钟功能
STM32使用HAL库驱动RTC时钟及闹钟功能目录STM32使用HAL库驱动RTC时钟及闹钟功能(一)工程配置(二)代码编写(三)运行效果本章实现效果:RTC时钟获取周期进行闹钟提醒(这个功能常用于周期性低功耗的需求,例如让RTC闹钟提醒事件的中断唤醒处于低功耗模式的单片机,让单片机采集完数据之后再次进入低功耗,这样周期执行以达到省电的目的。)(一)工程配置我使用STM32F103RB这一款MCU,首先使用STM32CUBEMX创建工程,配置主时钟和RTC时钟,我板子上是使用的外部的32原创 2020-12-25 09:17:58 · 14721 阅读 · 27 评论 -
STM32的FSMC地址线对应关系通俗易懂解读和和驱动TFT-LCD的原理
STM32的FSMC地址线对应关系通俗易懂解读和和驱动TFT-LCD的原理当 Bank接的是 8 位宽度存储器的时候:HADDR[25:0]对应FSMC_A[25:0]当 Bank接的是 16 位宽度存储器的时候:HADDR[25:1]对应FSMC_A[24:0]搞懂这个地址对应关系前,需要先明白FSMC的概念。FSMC是灵活的静态存储控制器,顾名思义它是用于驱动存储类器件的一种接口并且带有时序的自动控制,所以叫存储控制器。接口支持包括SRAM、NOR FLASH、NAND FLASH、PS原创 2020-12-24 09:16:13 · 4416 阅读 · 5 评论 -
STM32移植使用mbedtls-2.24.0
STM32移植使用mbedtls-2.24.0目录STM32移植使用mbedtls-2.24.0(1)关于PolarSSL(2)mbedtls移植(3)移植测试(1)关于PolarSSLmbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码。这是双重许可与Apache许可证 2.0版(与GPLv2许可也可)。网站上指出,mbed TLS的目标是“易于理解,使用,集成和扩展”。核心SSL库用C编程语言编写,并实现SSL模块,基本加密功能并提供各种实原创 2020-11-03 09:57:55 · 7559 阅读 · 7 评论 -
基于STM32使用HAL库手把手移植华为LiteOS系统并使用CMSIS接口API
基于STM32使用HAL库手把手移植华为LiteOS系统目录基于STM32使用HAL库手把手移植华为LiteOS系统(一)说明(一)裸机工程创建(二)移植LiteOS(三)系统运行测试(一)说明华为LiteOS内核源码下载地址:https://github.com/LiteOS/LiteOS,选择develop分支下载。本章节实验工程源码下载:https://github.com/wowyyy/STM32_LiteOS_Demo(一)裸机工程创建使用STM32CubeMX创建裸机工程:原创 2020-10-13 14:23:15 · 2001 阅读 · 0 评论 -
STM32CubeMX | STM32使用HAL库手动移植FreeRTOS10.4.1
基于HAL库手把手移植FreeRTOS10.4.1目录基于HAL库手把手移植FreeRTOS10.4.1(一)裸机工程创建(二)移植FreeRTOS(一)裸机工程创建使用STM32CubeMX创建裸机工程:这里我是用的芯片是STM32F103RBT6,时钟主频为72MHz,配置时钟树:配置调试串口1:配置两个LED灯:由于FreeRTOS使用系统嘀嗒定时器当作心跳,HAL库也使用了这个定时器,所以我们将HAL库的定时器改为其他,这里我该为了定时器4:配置中断,注意这里一定要选择组4原创 2020-10-10 17:00:12 · 3415 阅读 · 8 评论 -
STM32使用HAL库实现按键的单击、双击、长按
STM32使用HAL库实现按键的单击、双击、长按目录STM32使用HAL库实现按键的单击、双击、长按前言具体思路工程配置代码实现实验效果前言编程开发环境:STM32CubeIDE ~~~~~~~~ 按键的单击、双击、长按等在MCU编程中是比较常见且常用的事件,本文章基于STM32来实现,具体思路用在其他MCU也是原创 2020-09-19 16:56:45 · 8797 阅读 · 8 评论