
STM32程序设计
文章平均质量分 68
STM32F1 F4等系列相关的程序设计,程序模块,以及算法小技巧
小石头有大内涵
一名嵌入式界的小学生
展开
-
【STM32技巧】使用STM32 HAL库的硬件I2C驱动RX8025T实时时钟芯片
STM32硬件I2C使用HAL库开发,驱动实时时钟芯片RX8025T,可以设置闹钟(分钟),读取时间原创 2022-06-21 17:13:08 · 2921 阅读 · 5 评论 -
【STM32技巧】HX711称重芯片详细说明
概述HX711 模块 A 通道带有 128 倍信号增益,可以将 5mV 的电压放大 128 倍,然后采样输出 24bit AD 转换的值,单片机通过指定时序将 24bit 数据读出如何计算传感器供电电压HX711 可以在产生 VAVDD 和 AGND 电压,即 711 模块上的 E+和 E-电压。该电压通过 :VAVDD=VBG(R1 +R2 )/R2例如:VBG 为模块儿基准电压 1.25V,R1 = 20K,R2 = 8.2K,因此得出 VAVDD = 4.3V(为了降低功耗,原创 2022-05-19 13:40:41 · 24079 阅读 · 11 评论 -
【STM32技巧】(1)STM32定时器8种触发源之ITR0~ITR3说明
定时器框图图中红色虚线框选部分是定时器的 " 时钟产生器 "定时器的 " 时钟产生器 " 可以是8种触发源触发,也可以是来自RCC的CLK(这里不讲解)定时器的 " 时钟产生器 " 通过 “触发控制器” 中的 “从模式控制器” 的配置,产生的时钟信号给 “PSC预分频器” 输出,进而给定时器计数8种触发源ITR0~ITR3触发源说明高级定时器通用定时器举个例子:将TIM2设置成从定时器 从机模式为:外部时钟模式1从模式 [External Clock Mod1], 触发源选择原创 2022-04-12 23:38:48 · 17651 阅读 · 8 评论 -
【STM32技巧】STM32 CubeMX中定时器四种从机模式说明
四种从机模式说明外部时钟模式1从模式 [External Clock Mod1]这个模式比较特别,名字也有点奇葩。其实,这个从模式跟时钟源的外部时钟模式1有渊源。在介绍计数器时钟源时,讲到过外部时钟模式1,即计数器的时钟来自TI1或TI2的输入脉冲,连接到从模式控制器并为计数器提供时钟。也就是说,当计数器的时钟来自触发信号时,计数器就处于外部时钟模式1从模式。当然,这个触发信号就不仅仅限于来自定时器通道TI1/TI2的输入信号,还可以是上面提到过三类触发输入信号的任一种,比方来自其它定时器的触发输.原创 2022-04-10 00:01:13 · 8083 阅读 · 1 评论 -
【STM32技巧】STM32 PWM互补输出设置
本例程是使用STM32CubeMX 6.5版本生成带代码测试单片机型号:STM32F103VET6时钟设置72MHZ-使用定时器1的通道1 和 通道2 配置PWM互补输出分频72分频(定时器频率为 72MHZ / 72 = 1MHZ),计数周期1000,也就是计数到1000溢出,所以,PWM频率就是1KHZ,周期是1ms (1s / 1000)PWM占空比设置注意: 红框是占空比设置,也就是比较器寄存器和计数器寄存器的数值所比较,相同后翻转引脚(大致就是这个意思)其它不要动原创 2022-04-04 23:35:31 · 10757 阅读 · 5 评论 -
【STM32技巧】CubeMX 生成的代码单片机不能正常运行
问题描述:正常库文件写的代码没有问题正常使用CubeMX生成的HAL代码能够成功下载但是不能正常运行原因分析:用到了 printf 函数如果确实使用了 printf 函数后极大概率没有勾选 Use MicroLIB 这个库勾选下图的库文件,并重新编译编译下载相关测试代码:/* USER CODE BEGIN Header *//** ***********************************************************************原创 2022-04-03 18:56:34 · 4726 阅读 · 0 评论 -
【STM32技巧】ADC模拟量采集的几种用法
1. AD单次转换+软件启动通过程序启动AD,AD采集一次,我们就去读一次。这种情况,建议开启AD转换完成中断,在中断中读出AD值并做处理。初始化的时候,启动一次。然后在主循环里,每隔一秒启动一次。在中断回调函数里,进行相关处理:电脑输出如下:2. 连续转换+软件启动在方法1的基础上做调整,从单次转换,变成连续转换。也就是说,只需要开启一次,它就能一直转换,直到程序让它停止。优点是省去了频繁开启中断的麻烦;缺点是需要频繁进入中断去读AD值。初始化的时候开原创 2022-03-28 13:42:44 · 7973 阅读 · 0 评论 -
【mktime】mktime函数使用
函数原型time_t mktime(struct tm *)其中的 tm 结构体定义如下:struct tm {int tm_sec; /* 秒 – 取值区间为[0,59] */int tm_min; /* 分 - 取值区间为[0,59] */int tm_hour; /* 时 - 取值区间为[0,23] */int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */int原创 2022-02-20 14:25:34 · 8269 阅读 · 0 评论 -
【FlashDB】第三步 FlashDB 移植 STM32L475 使用QSPI驱动外部 flash W25Q64之 FlashDB 移植
准备事项完成了以下两步操作后进行【FlashDB】第一步 FlashDB 移植到 STM32L475 使用QSPI驱动外部 flash W25Q64之FAL移植【FlashDB】第二步 FlashDB 移植 STM32L475 使用QSPI驱动外部 flash W25Q64之 SFUD 移植貌似以上两步顺序搞反了1. FlashDB 移植1.1 将FlashDB 相关文件文件依次放入MDK中FlashDB 库链接1.2红框中是移植必须文件fdb.c 核心文件fdb_kvdb.c原创 2022-02-20 14:07:00 · 3464 阅读 · 0 评论 -
【FlashDB】第二步 FlashDB 移植 STM32L475 使用QSPI驱动外部 flash W25Q64之 SFUD 移植
第一步写好了FAL移植,那么进行第二步 SFUD 移植【FlashDB】第一步 FlashDB 移植到 STM32L475 使用QSPI驱动外部 flash W25Q64之FAL移植准备工作1. SFUD 介绍SFUD 是一款开源的串行 SPI Flash 通用驱动库。由于现有市面的串行 Flash 种类居多,各个 Flash的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的Flash,提高了涉及到 Flash 功能的软件的可原创 2022-02-20 12:57:43 · 2304 阅读 · 0 评论 -
【FlashDB】第一步 FlashDB 移植到 STM32L475 使用QSPI驱动外部 flash W25Q64之FAL移植
准备工作1. FlashDB是基于FAL Flash抽象层,首先对FAL的移植:FAL介绍FAL (Flash Abstraction Layer) Flash 抽象层,是对 Flash 及基于 Flash的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API (框架图如下所示),并具有以下特性:支持静态可配置的分区表,并可关联多个 Flash 设备;分区表支持 自动装载 。避免在多固件项目,分区表被多次定义的问题;代码精简,对操作系统 无依赖 ,可运行于裸机平台,原创 2022-02-20 12:33:21 · 10513 阅读 · 0 评论