STM32-HAL库
文章平均质量分 94
学尽天下识,问尽世间路。
花落指尖❀
想每天分享,但是精力有限,长时间断更,可能去拯救世界了……
每一分钟的坚持,都是为了生活。
想学尽天下习,问遍世间路。
一个想凭借自己活下去的00后,
一个想通过努力创造公平的年轻人。
没有做到最好的追求,不如不做!
对知识能够改变命运深信不疑
展开
-
【13】STM32·HAL库-正点原子SYSTEM文件夹 | SysTick工作原理、寄存器介绍 | printf函数使用、重定向
下面函数都是以sys_开头,定义在sys.c中。正点原子函数现阶段命名规则如果是在led.c中,则以led_开头。在F7/H7系列中会存在Cache配置函数,I-Cache中存储指令,D-Cache中存储数据。SysTick,即系统滴答定时器,包含在M3/4/7内核里面,核心是一个24位的递减计数器(最大计数值为224=16777216当计数器减至0时,证明延时成功,则让COUNTFLAG置1,并将重装载寄存器中的值赋给计数器,重装载值可以自己设置,取值范围是从0开始0~16777215。原创 2023-07-29 23:56:42 · 1787 阅读 · 0 评论 -
【12】STM32·HAL库开发-STM32时钟系统 | F1/F4/F7时钟树 | 配置系统时钟
下图的clk是clock(时钟)的缩写,下面的波形可以理解为脉冲信号或者方波。简单来说,时钟是具有周期性的脉冲信号,最常用的是占空比50%的方波。时钟是单片机的脉搏,搞懂时钟走向及关系,对单片机使用至关重要!原创 2023-07-26 23:48:19 · 4120 阅读 · 1 评论 -
【11】STM32·HAL库开发-STM32CubeMX简介、安装 | 新建STM32CubeMX工程步骤
STM32CubeMX是ST开发的一款图形配置工具,可通过配置自动生成初始化代码(并不包括逻辑代码)。以下是STM32CubeMX官方宣传图片,适用于Windows和macOS系统,用于生成初始化代码,一个图形配置工具,搭配不同系列的STM32Cube固件包,即可支持不同系列的STM32芯片,初始化代码使用的是HAL库。原创 2023-07-18 23:11:34 · 1624 阅读 · 0 评论 -
【10】STM32·HAL库开发-MAP文件解析 | STM32启动过程
*参考资料:**STM32 启动文件浅析.pdf1,初始化MSP:从0X0800 0000获取,因为从FLASH开始启动;2,初始化PC:从0X0800 0004获取;3,设置堆栈大小:Heap_Size(堆)、Stack_Size(栈),通过着两个宏来设置堆栈大小;4,初始化中断向量表:__Vectors定义;5,调用初始化函数:可选的,如调用: SystemInit函数;6,调用__main:标准C库函数,执行一系列设置,最终调用main函数。用户编写了main。原创 2023-07-17 22:55:12 · 1405 阅读 · 0 评论 -
【09】STM32·HAL库-新建HAL库版本MDK工程 | 下载STM32固件库
之前文章中已经总结如何下载,具体查看【07】STM32·HAL库开发-新建寄存器版本MDK工程 |下载STM32Cube固件包 | 新建MDK工程步骤中的第1.1小节。 新建HAL库版本MDK工程简要步骤:1.新建工程文件夹:D/M/O/P/U文件夹,5个文件夹;2.新建工程框架:工程命名,选芯片;3.添加文件:建分组,添加.s、.c;4.魔术棒设置:T/O/L/C/D/U,6个选项卡;5.添加main.c:编写自己的代码。 在桌面新建一个工程根目录文件夹,并在该文件夹里新建D/M/O/P原创 2023-07-16 20:33:49 · 2205 阅读 · 0 评论 -
【08】STM32·HAL库开发-HAL库介绍 | STM32Cube固件库介绍 | HAL库框架结构 | 如何使用HAL库及使用注意事项
CMSIS (微控制器软件接口标准):Cortex Microcontroller Software Interface Standard,是由ARM和与其合作的芯片厂商(比如ST、NXP公司等)、软件工具厂商(Keil、IAR公司等),共同制定的标准。如果没有此标准,ARM公司的产品兼容性非常差。下图中分为三层,第一层是用户层,主要是用户代码、在线调试;原创 2023-07-03 23:32:59 · 14217 阅读 · 1 评论 -
【07】STM32·HAL库开发-新建寄存器版本MDK工程 |下载STM32Cube固件包 | 新建MDK工程步骤
正点原子工程中的keilkill.bat文件会将Output文件夹中没用到的文件进行删除。原创 2023-06-21 10:52:30 · 2079 阅读 · 0 评论 -
【06】STM32·HAL库开发-STM系统框架 | STM32寻址范围 | STM32存储器映射 | STM32寄存器映射
Cortex-M3内核或M4/M7等和调试系统都是ARM公司设计,由ARM公司授权给其他芯片厂商,由其他芯片厂商添加内部总线、外设、存储器、时钟和复位 、IO以及芯片外部的外壳。除了内核和调试系统都是有芯片制造商设计开发,比如说ST公司等等。总结成一句话:MCU厂商,经ARM公司授权(授权内核、调试系统,调试系统内嵌到内核里面,绑定在一起的),添加不同的外设 = 各种XX32芯片(例如:ST公司的STM32,还有其他公司的APM32、GD32、MM32、HC32等》)。 上表中的AHB为高级高性能原创 2023-06-12 10:24:10 · 1555 阅读 · 1 评论 -
【05】STM32·HAL库开发-C语言基础知识 | stdint.h介绍 | 位操作 | 宏定义的使用 | 条件编译 | extern声明 | typdef使用 | 结构体、指针、代码规范介绍。
stdint.h 是从 C99 中引进的一个标准 C 库的文件,可以在MDK5的安装路径:D:\MDK5.34\ARM\ARMCC\include中找到。stdint.h 定义了很多类型别名,将有符号的char类型定义别名为int8_t等,使用此套别名有易于移植。在MDK中需要配置才能支持使用S99标准,默认是勾选的。宏定义可以:提高效率、可读性、易改性,核心是替换。# define 标识符 字符串标识符:宏定义的名字,变量一般为小写,为了区分宏定义和变量,标识符中的英文字母建议大写。原创 2023-06-07 22:20:38 · 3588 阅读 · 0 评论 -
【04】STM32·HAL库开发-MDK5使用技巧 |文本美化 | 代码编辑技巧 | 查找与替换技巧 | 编译问题定位 | 窗口视图初始化
前提:勾选【Browse infomation】,勾选上编译速度会变慢。原创 2023-06-06 22:11:09 · 756 阅读 · 1 评论 -
【03】STM32·HAL库开发-初识STM32 | STM概念、芯片分类、命名规则、选型 | STM32原理图设计、看数据手册、最小系统的组成 、STM32IO分配
STM32:ST是意法半导体,M是MCU/MPU,32是32位。 ST累计推出了:5大类、18个系列、1000多个型号的Cortex内核微控制器。 ST中文社区网地址 得到下面的图片,前面说的ST五大类是MPU、高性能MCU、主流MCU、超低功耗MCU、无线系列MCU。如果要了解F1的1000多种型号,可以点击网页中的【STM32 F1】下载选型手册。 ST官网地址 主要关注引脚数、闪存容量、封装、温度范围。 选型原则:由高到低,由大到小。高低是性能高低,大小是FLASH、S原创 2023-06-05 22:21:42 · 1231 阅读 · 1 评论 -
【02】STM32·HAL库开发-Cortex-M系列介绍 | Cortex内核分类及特征 | Cortex-M3/M4/M7介绍
ARM官网地址到目前位置Cortex-M系列有11个。以M3为例,点进去就可以下载其参考手册等。在ARM开发者官网可以找到类似内容:Cortex-M3-M7最终整理如下:中断Cortex-M3、M4、M7都是嵌套中断向量控制器NVIC,嵌套在内核中,不可屏蔽中断NMI,物理中断源和中断优先级都是内核提供,具体使用多少都是设计芯片的公司来决定,ST公司在F1系列中用到中断源60个、中断优先级16个。原创 2023-06-03 22:47:02 · 1553 阅读 · 0 评论 -
【01】STM32·HAL库开发-单片机简介 |用处、发展历程、发展趋势、CISC与RISC对比、冯诺依曼和哈佛结构对比
单片机:Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片。 RAM分为静态随机存储器SRAM和动态随机存储器DRAM,电脑的内存条是DRAM的一种,需要周期性地去刷新,存储周期短,不然会数据丢失;SRAM只要一直供电数据就不会丢失。掉电,SRAM和DRAM二者都会数据丢失。 上图中,电脑是64位,64除以8得8字节,8字节×5Ghz得40GB/s,单片机是32位的,32除以8得4字节,4字节×72MHz约300MB/s。 单片机特点:体积小原创 2023-06-03 00:25:58 · 736 阅读 · 0 评论