
STM32单片机的开发
文章平均质量分 82
个人笔记的分享以及帮助有需要的人
老王WHH
保持身体健康,坚持努力学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32——系统滴答定时器(SysTick寄存器详解)
Cortex-M处理器内集成了一个小型的名为SysTick(系统节拍)的定时器,它属于NVIC的一部分,且可以产生 SysTick异常(异常类型#15)。SysTick为简单的向下计数的24位计数器,可以使用处理器时钟或外部参考时钟(通常是片上时钟源)。原创 2025-01-07 09:49:45 · 2950 阅读 · 0 评论 -
如何理解并学会看STM32的总线架构
2.1.9 AHB/APB 总线桥 (APB)借助两个 AHB/APB 总线桥 APB1 和 APB2,可在 AHB 总线与两个 APB 总线之间实现完全同步的连接,从而灵活选择外设频率。有关 APB1 和 APB2 最大频率的详细信息,请参见器件数据手册;有关 AHB 和 APB 外设地址映射的信息每次芯片复位后,所有外设时钟都被关闭(SRAM 和 Flash 接口除外)。使用外设前,必须 在 RCC_AHBxENR 或 RCC_APBxENR 寄存器中使能其时钟。原创 2024-07-23 10:55:55 · 1319 阅读 · 0 评论 -
程序debug模式下正常运行,退出debug模式数据出错/不能正常运行,解决办法
调试的时候,要程序装载,本身板子上一直有电的,然后这时候再装载程序,那么它是是相对来说这个时间是比较宽裕的,但是你要是不在调试状态,直接断电再上电,那很多的时候它是上电,这个电源还没就稳定,你的程序就开始跑开了,比如这个电源还没稳定,你的程序已经跑到while(1)里边儿去了,那很多时候这个芯片儿就初始化,就没初始化好。debug模式下值都是正确的,分步调试和debug模式下运行程序都是正常的,退出debug模式,单独上电运行程序,发现数据输出有误。我是32板子外接传感器,要求上电输出并且进行数据处理。原创 2024-06-06 16:18:16 · 1713 阅读 · 0 评论 -
STM32——启动文件选择及启动文件宏定义
一般在下载标准库的时候这个文件夹里面放了一个readme17.标准库\F1标准库\STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template\MDK-ARM打开readme,如图所示的就是#define的宏定义。填到本文章第一张图示的地方即可。原创 2024-05-29 11:38:05 · 1692 阅读 · 0 评论 -
单片机——ISP下载、ICP下载、IAP下载
System memory是STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序 ,这是一块ROM,出厂后无法修改。升级的过程,将新的代码写入,有两种情况,一种是覆盖原本运行的APP区,一种是添加新的区域。IAP是MCU在系统中获取代码并对自己重新编程,即用程序来改变程序。使用的是SWD/JTAG接口,在keil软件中配置debug。在线系统编程,使用引导程序加上外围UART/SPI接口烧录。其本质是将程序的hex文件烧录到板子里的过程。原创 2024-02-08 15:27:07 · 1949 阅读 · 0 评论 -
单片机——FLASH(2)
但是在HAL库中并没有这一步,知识对flash区域上锁,解锁,HAL库函数有对标志位清除这一项,但是数据缓存标志禁止未提及。flash写数据时,对闪存的任何操作都会锁住总线,这里锁住总线的锁定机制来控制访问点共享资源,有设备要访问资源,会在总线上设置一个锁定的状态,表示正在访问此资源,其他设备访问就会阻塞,直到被释放标志。最后提一下,底层访问通讯总线都要有加锁过程,CPU与内存通讯时,有地址总线,总线的宽带意味着每次通讯读写的字节数。另外,在控制寄存器FLASH_CR的时候,PSIZE的配置。原创 2024-02-07 17:06:28 · 1282 阅读 · 0 评论 -
STM32——FLASH(1)简单介绍、分类、读写流程及注意事项
1、在擦写的过程中可以不用关闭中断,现在的单片机中有stall行为,可以看一下手册或者搜索,在擦除的过程中,是不会进行读取FLASH 操作的,简单来说擦写是互斥的。2、当单片机中有2个以上的FLASH bank ,中断向量表在一个bank中,擦写其他bank的时候,中断响应是不受影响的。3、flash写入的时候的限制条件:写入时的起始地址必须是4的倍数,必须在合法的写入地址内。3、存储单元:分为块、页、byte、与硬盘的扇区相同。对于flash的数据,都支持1、2、4字节的写入。4、可进行10万次擦写。原创 2024-02-07 10:01:01 · 2023 阅读 · 0 评论 -
STM32——外部中断
当我们调用 HAL_GPIO_Init 设置 IO 的 Mode 值为 GPIO_MODE_IT_RISING(外部中断上 升 沿 触 发 ), GPIO_MODE_IT_FALLING ( 外 部 中 断 下 降 沿 触 发 ) 或 者 GPIO_MODE_IT_RISING_FALLING(外部中断双边沿触发)的时候,该函数内部会通过判断 Mode 的值来开启 SYSCFG 时钟,并且设置 IO 口和中断线的映射关系。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。中断服务函数的名字是。原创 2023-11-23 17:42:09 · 1204 阅读 · 0 评论 -
STM32——独立看门狗
看门狗(Watchdog)是一种用于提高系统可靠性的硬件或软件机制。它的作用是监控系统的运行状态,并在系统出现故障或停止响应时采取相应的措施,如复位系统或执行预定义的异常处理程序。原创 2023-11-23 17:37:01 · 1203 阅读 · 0 评论 -
STM32——STM32Cubemx的学习使用总结
STM32CubeMX是一个图形化工具,可以非常容易地配置STM32微控制器和微处理器,以及为Arm@Cortex@-M 内核或部分 Linux@ 设备树生成相应的初始化C代码,用于Arm@Cortex@-A内 核。第一步包括选择意法半导体STM32 微控制器、微处理器或与所需外设相匹配的开发平台,或在特定开发平台上运行的示例。对于微处理器,第二步允许配置整个系统的 gpio 和时钟设置,并以交式地方式将外设分配到Arm@Cortex-M或Cortex-A系列。原创 2023-11-20 17:16:58 · 2831 阅读 · 0 评论 -
STM32——STM32F103时钟解析(正点原子资料+HAL库代码分析)
上次写系统时钟解析的时候说出一篇103的时钟解析,我就整理HAL库开发的正点的资料,给小白梳理,我也是小白,不做权威使用。原创 2023-11-16 17:20:37 · 4187 阅读 · 0 评论 -
STM32——HAL库中寄存器地址名称映射分析
HAL库中寄存器地址名称映射分析原创 2023-11-10 17:32:51 · 853 阅读 · 2 评论 -
STM32——NVIC中断优先级管理分析
NVIC中断优先级管理分析,包括优先级分配,响应过程,影响中断响应的因素等。原创 2023-11-10 17:05:28 · 3423 阅读 · 2 评论 -
STM32——端口复用与重映射概述与配置(HAL库)
端口复用与重映射概述与配置(HAL库)原创 2023-11-10 16:50:54 · 3961 阅读 · 3 评论 -
STM32——系统时钟(概述,问题总结)
系统时钟概述及小白问题解答。原创 2023-11-10 16:43:22 · 841 阅读 · 0 评论 -
STM32——STM32F4系统架构
STM32F4系统架构原创 2023-11-10 16:38:05 · 794 阅读 · 1 评论 -
STM32——一文完全读懂IIC通信
一文读懂IIC通信原创 2023-09-18 11:59:58 · 2700 阅读 · 2 评论 -
STM32——SPI通信
SPI是一种串行通信接口,用于在微控制器、传感器、存储器等设备之间进行数据传输。SPI通信通常涉及一个主设备(Master)和一个或多个从设备(Slave),通过共享时钟信号和数据线进行通信。原创 2023-09-12 11:35:11 · 4011 阅读 · 0 评论 -
STM32——串口通信(总结)
串行通信是一种数据传输方式,通过逐位(一位接一位)的方式在发送端和接收端之间传输数据。相比并行通信(同时传输多个位),串行通信只使用单个信道传输数据,因此在物理连接和传输线路上更简单、成本更低。基本原理:1.数据传输顺序:串行通信按照固定的顺序逐位传输数据,通常是从最高位到最低位或反之。发送端和接收端需要同步传输的速率和数据位数,以确保正确的数据解析和还原。2.时钟同步:为了确保发送端和接收端的数据同步,通常会使用时钟信号作为参考。原创 2023-09-09 11:40:11 · 1185 阅读 · 0 评论 -
STM32——STM32F401x系列标准库的下载+环境搭建+建工程步骤(更完整)
之前的环境搭建和标准库都是给好的,相当于喂饭吃了,自己写的总结也不全面,经历了新的芯片选择重新搭建环境和建工程后,学到了不少,立马写下本篇笔记原创 2023-08-04 10:14:59 · 7336 阅读 · 7 评论 -
STM32——LED内容补充(寄存器点灯及反转的原理)
LED1是PE2端口,如果表示当灯原来的状态位为1时,ODR置0,反之为1.实现灯闪烁/反转效果# define LED1_Toggle() GPIOE -> ODR ^=(1 << 2) //反转灯操作# define LED1_Toggle() GPIOE -> ODR ^=(1 << 2) //反转灯操作-># define LED1_Toggle() GPIOE -> ODR ^=(1 << 2) //反转灯操作^=原创 2023-08-03 20:25:58 · 1737 阅读 · 0 评论 -
STM32——led灯的点亮+闪烁+流水灯的实现
其方式有两种一种是寄存器方式一种是库函数方式,但其原理都是一样的。如原理图所示,与LED相连接的IO口置低电平即可点亮led灯。原理:让连接的IO口先置零再置1可以使其先亮再灭,我们先使灯置1,然后宏定义让灯反转,delay一个时间,代码如下。使这四个灯轮流亮起-代码如下。原创 2023-07-15 16:01:16 · 14807 阅读 · 0 评论 -
STM32——STLink的使用
到官网https://www.st.com/en/development-tools/stsw-link004.html下载对应版本的驱动。(或者一些公众号分享的网盘,实在找不到可以私信我,我给你发,没人回可加QQ2227896924)在Flash Douwnload下 选择烧录后自动运行reset and run。设置完成后,Debug里面会显示型号信息(线连接的情况下)点击debug设置如图下并点击Setting。首先第一步,连接线的VCC和GND别接反了。下载后会显示下面信息。原创 2023-07-05 15:52:27 · 9373 阅读 · 1 评论 -
STM32——GPIO配置
GPIO的输入输出是对于STM32单片机来说的。以下仅为个人粗略笔记,内部电路分析可参考博客https://blog.csdn.net/k666499436/article/details/123845466。原创 2023-07-05 15:19:13 · 5064 阅读 · 0 评论 -
STM32——建工程
以STM32F10X类型举例。原创 2023-07-03 21:01:26 · 2726 阅读 · 0 评论 -
STM32——MCU简单介绍
本篇文章仅作为作者个人笔记使用以及帮助有需要的人,不作权威性使用。mcu目前的使用广泛,多为小型智能产品,如:手环、空气检测仪、智能垃圾桶等等。STM32是意法半导体(意大利)采用ARM公司设计的内核,设计一系列32位单片机芯片。原创 2023-07-03 16:08:07 · 6632 阅读 · 1 评论