![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机充电记录
文章平均质量分 53
是会一条路走到黑的呀
这个作者很懒,什么都没留下…
展开
-
13、输入捕获实验
STM32输入捕获工作过程(通道1为例)一句话总结工作过程:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器(TIMx_CCRX)里面,完成一次捕获。步骤1:设置输入捕获滤波器(通道1为例)步骤2:设置输入捕获极性(通道1为例)步骤3:设置输入捕获映射通道(通道1为例)步骤4:设置输入捕获分频器(通道1为例)步骤5:捕获到有效信号可以开启中断。原创 2024-03-02 08:20:38 · 585 阅读 · 0 评论 -
12、窗口看门狗
之所以称为窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。而独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚。窗口看门狗工作示意图:窗口看门狗工作过程总结:当喂狗的时候如果计数器的值大于某一设定数值W[6:0]时,此设定数值在WWDG_CFG寄存器定义。当计数器的数值从0x40减到0x3F时[T6位跳变到0]。原创 2024-03-02 08:19:11 · 851 阅读 · 0 评论 -
11、SystemInit函数解读
5、初始化之后可以通过变量SystemCoreClock获取系统变量。如果SYSCLK=168MHz,那么变量SystemCoreClock=168000000。2、首先如果使用外部时钟源HSE,要配置外部晶振频率:stm32f4xx.h。APB1总线时钟(PCLK1=SYSCLK/4)=42MHz。APB2总线时钟(PCLK2=SYSCLK/2)=84MHz。AHB总线时钟(HCLK=SYSCLK)=168MHz。1、系统时钟初始化函数:SystemInit();SYSCLK(系统时钟)=168MHz。原创 2024-02-04 15:57:23 · 672 阅读 · 0 评论 -
10、STM32时钟系统
第二个输出PLLQ用于生成USB OTG FS的时钟(48MHz),随机数发生器的时钟和SDIO时钟。第一个输出PLLP用于生成高速的系统时钟(最高168MHz)专用PLL(PLLI2S)用于生成精确时钟,从而在I2S接口实现高品质音频性能。主PLL(PLL)由HSE或者HSI提供时钟信号,并具有两个不同的输出时钟。3、STM32F4时钟信号输出MCO1(PA8)和MCO2(PC9)。1、STM32有5个时钟源:HSI、HSE、LSI、LSE、PLL。4、任何一个外设在使用之前,必须首先使能其相应的时钟。原创 2024-02-04 01:37:28 · 407 阅读 · 0 评论 -
9、C语言复习
define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。#define 标识符 字符串。原创 2024-02-04 00:31:46 · 497 阅读 · 0 评论 -
8、内部FLASH模拟EEPROM实验(STM32F407)
在程序中编程(IAP,In Application Programming):通过任何一种通信接口(如IO端口,USB,CAN,UART,I2C,SPI等)下载程序或者应用数据到存储器中。也就是说,STM32允许用户在应用程序中重新烧写闪存存储器中的内容原创 2023-12-01 23:44:26 · 1245 阅读 · 0 评论 -
7、单片机与W25Q128(FLASH)的通讯(SPI)实验(STM32F407)
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。原创 2023-12-01 23:31:11 · 1147 阅读 · 2 评论 -
4、RTC 实时时钟Demo(STM32F407)
RTC模块和时钟配置是在后备区域,即在系统复位或者待机模式唤醒后RTC的设置和时间维持不变,只要后备区域供电正常,RTC将一直工作下去。(RTC实质:一个掉电(主电源)后还继续运行(由VBAT供电)的32位的向上计数器,STM32F103没有分组的时间寄存器,需要自己解析,而F4有分组的时间寄存器。两个32位寄存器包含二进码十进制格式(BCD)的秒,分钟,小时(12或24小时制),星期几,日期,月份和年份。并且还可以进行夏令时补偿。其他32位寄存器还包含可编程的闹钟亚秒,秒,分钟,小时,星期几和日期。原创 2023-11-29 23:34:06 · 2698 阅读 · 3 评论 -
5、DMA Demo(STM32F407)
DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高原创 2023-11-30 22:33:33 · 703 阅读 · 0 评论 -
6、单片机与AT24C02的通讯(IIC)实验(STM32F407)
2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。原创 2023-11-30 23:25:17 · 1390 阅读 · 0 评论 -
3、TFTLCD Demo(STM32F407)
例如:假设设置的是从左到右,从上到下的扫描方式,那么设置好起始坐标(通过SC,SP设置)后,每写入一个颜色值,GRAM地址将会自动自增1(SC++),如果碰到EC,则回到SC,同时SP++,一直到坐标:EC,EP结束,其间无需再次设置的坐标,从而大大提高写入速度。ILI9341在收到该指令后,第一次输出的是dummy数据(无效),第二次开始,读取到的才是有效的GRAM数据(从坐标:SC,SP开始),输出规律为:每个颜色分量占8个位,一次输出2个颜色分量。而对STM32F4,则设置为15。原创 2023-11-29 10:48:49 · 1657 阅读 · 0 评论 -
2、PWM Demo (STM32F407)
【代码】2、PWM Demo (STM32F407)原创 2023-11-27 23:26:32 · 416 阅读 · 0 评论 -
1、STM32F407 LED Demo
ifndef、#define、#endif格式条件编译,作用是避免头文件内容比重复定义。原创 2023-11-26 23:58:28 · 542 阅读 · 0 评论 -
2-3独立按键的单击与连击
如果是对参数的大小进行调整,经过修改连击的触发速度,实现快速调整。经过类似的做法,可实现越转越快的效果)原创 2023-11-25 15:27:27 · 362 阅读 · 0 评论 -
2-2 独立按键短按与长按
【代码】2-2 独立按键短按与长按。原创 2023-11-25 14:42:25 · 318 阅读 · 0 评论 -
2-1 非阻塞延时实现独立按键的消抖与按键识别
将按键的状态分成这三种:初始态(未按下)、确认态(按下)、释放态(松手)有利于并行多任务的运行。转载 2023-11-24 00:02:52 · 211 阅读 · 0 评论 -
1-2 非阻塞延时实现LED闪烁功能(累计定时中断次数)--多路软件定时器的功能实现
硬件定时器不够的时候可以用这种软件定时器的方法,如果不需要哪个软件计时器,设成0即可。这里用的定时计数器,所以定时时间比较准确。原创 2023-11-21 23:28:53 · 163 阅读 · 0 评论 -
1-1、阻塞延时与非阻塞延时之非阻塞延时实现LED闪烁(累计主循环次数)
软件延时器:由于不利于多任务并行,因此需要改造该延时函数,使其具有多任务并行能力,它在启动时,不能因为自己对时间的需求而导致系统及系统中其它任务都眼巴巴的等着它。但是这种方式会随着任务的增多时间变得不均匀,要想时间更加均匀要借助定时器。延时函数:独占性的延时函数,其在运行时,整个系统都将处于停止等待的状态。不好完成多个LED不同频率的闪烁。原创 2023-11-21 22:33:23 · 194 阅读 · 0 评论