STM32F1单片机学习笔记
文章平均质量分 93
本专栏主要是针对STM32F1系列单片机的使用,同一功能分别基于【标准库】和【HAL库】两种方式对比形式讲解
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Geek@Yang
目前从事单片机、嵌入式相关的开发工作,纵有疾风起,人生不言弃!
展开
-
17、SysTick—系统定时器
SysTick—系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。因为SysTick是属于CM3内核的外设,所以所有基于CM3内核的单片机都具有这个系统定时器,使得软件在 CM3 单片机中可以很容易的移植。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。原创 2022-09-07 16:42:36 · 935 阅读 · 1 评论 -
16、EXTI—外部中断事件控制器
外部中断/事件控制器,管理了控制器的 20 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。原创 2022-09-07 09:52:46 · 768 阅读 · 0 评论 -
15、STM32 中断应用概览
在讲如何配置中断优先级之前,我们需要先了解下NVIC。NVIC是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯片厂商在设计芯片的时候会对Cortex-M3内核里面的NVIC进行裁剪,把不需要的部分去掉,所以说STM32的NVIC是Cortex-M3的NVIC的一个子集。在固件库中,NVIC 的结构体定义可谓是颇有远虑,给每个寄存器都预留了很多位, 恐怕为的是日后扩展功能。原创 2022-09-06 10:37:30 · 769 阅读 · 0 评论 -
14、RCC—使用HSE&HSI配置时钟
文章目录1、RCC主要作用—时钟部分2、RCC 框图剖析—时钟部分2.1、系统时钟2.1.1、①HSE高速外部时钟信号2.1.2、②PLL时钟源2.1.3、③PLL时钟 PLLCLK2.1.4、④系统时钟SYSCLK2.1.5、⑤AHB总线时钟HCLK2.1.6、⑥APB2总线时钟 HCLK22.1.7、⑦APB1总线时钟 HCLK12.1.8、设置系统时钟库函数2.2、其他时钟2.2.1、A、USB 时钟2.2.2、B、Cortex 系统时钟2.2.3、C、ADC时钟2.2.4、D、RTC时钟、独立看门狗原创 2022-01-24 15:59:19 · 1223 阅读 · 0 评论 -
13、启动文件详解
文章目录1、启动文件简介2、查找 ARM 汇编指令3、启动文件代码讲解3.1、Stack—栈3.2、Heap堆3.3、向量表3.4、复位程序3.5、中断服务程序3.6、用户堆栈初始化1、启动文件简介启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作:初始化堆栈指针 SP=_initial_sp初始化 PC 指针=Reset_Handler初始化中断向量表配置系统时钟调用 C 库函数 _main 初始化用户堆栈,从而最终调用 main 函数去到 C 的世界2、查找 AR原创 2022-01-23 10:52:24 · 1881 阅读 · 0 评论 -
12、GPIO—位带操作
文章目录1、位带简介2、外设位带区3、SRAM位带区4、位带区和位带别名区地址转换4.1、外设位带别名区地址4.2、SRAM位带别名区地址4.3、统一公式5、GPIO位带操作5.1、GPIO寄存器映射5.2、GPIO位操作5.3、主函数1、位带简介 位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常常见。51 单片 机中通过关键字 sbit 来实现位定义,STM32 没有这样的关键字,而是通过访问位带别名区 来实现。 在 STM32 中,有两个地方实现了位带,一个是 SRAM 区的原创 2022-01-22 15:11:20 · 877 阅读 · 0 评论 -
11、GPIO输入—按键检测
文章目录0、前言1、硬件设计2、软件设计2.1、编程要点2.2、代码分析2.2.1、按键引脚宏定义2.2.2、按键 GPIO 初始化函数2.2.3、检测按键的状态2.2.4、主函数2.3、下载验证0、前言 按键检测实验到 GPIO 外设的基本输入功能,本章中不在赘述 GPIO 外设的概念,如您忘记了,可重读前面“GPIO 框图剖析”小节,STM32 HAL 库中 GPIO 初始化结构体GPIO_TypeDef 的定义与【定义引脚模式的枚举类型】小节中讲解的相同。1、硬件设计 按键机械触点断开、闭原创 2022-01-21 15:49:00 · 1279 阅读 · 0 评论 -
10、GPIO输出—使用固件库点亮LED灯
文章目录0、前言1、硬件设计2、软件设计2.1、编程要点2.2、代码分析2.2.1、LED灯引脚宏定义2.2.2、控制LED 灯亮灭状态的宏定义2.2.3、LED GPIO初始化函数2.2.4、主函数2.3、下载验证3、STM32固件库补充知识3.1、SystemInit函数去哪了?3.2、断言3.3、Doxygen 注释规范3.4、防止头文件重复包含0、前言 利用固件库建立好的工程模板,就可以方便地使用 【STM32标准库】或【STM32HAL库】编写应用程序了, 可以说从这一章我们才开始迈入 ST原创 2022-01-21 09:54:12 · 545 阅读 · 0 评论 -
08、初识STM32库
文章目录0、前言1、CMSIS标准及库层次关系2、标准库2.1、库目录、文件简介2.2、库各文件间的关系2.3、使用帮助文档3、HAL库3.1、库目录、文件简介3.2、库各文件间的关系3.3、使用帮助文档0、前言 在上一章中,我们构建了几个控制 GPIO 外设的函数,算是实现了函数库的雏形,但 GPIO 还有很多功能函数我们没有实现,而且 STM32 芯片不仅仅只有 GPIO 这一个外设。 如果我们想要亲自完成这个函数库,工作量非常巨大。ST 公司提供的 标准软件库 或者 HAL软件库,包含了 STM原创 2022-01-19 16:10:41 · 540 阅读 · 0 评论 -
09、新建工程模板
文章目录1、基于标准库&HAL库手动新建工程1.1、新建本地工程文件夹1.2、新建工程1.2.1、选择CPU 型号1.2.2、在线添加库文件1.2.3、添加组文件夹1.2.4、添加文件1.2.5、配置魔术棒选项卡1.2.6、仿真器配置1.2.7、选择CPU型号2、使用STM32CubeMX新建HAL工程2.1、软件安装2.1.1、安装 STM32CubeMX软件2.2、新建工程2.2.1、选择CPU 型号2.2.2、确认时钟源2.2.3、配置IO口2.2.4、配置系统时钟2.2.5、进一步配置IO原创 2022-01-19 16:07:33 · 635 阅读 · 0 评论 -
07、自己写库—构建库函数雏形
文章目录0、前言1、什么是STM32标准库函数2、为什么采用库来开发及学习?3、实验:构建库函数雏形3.1、外设寄存器结构体定义3.2、外设存储器映射3.3、外设声明3.4、定义位操作函数3.5、定义初始化结构体 GPIO_InitTypeDef3.6、定义引脚模式的枚举类型3.7、定义GPIO 初始化函数3.8、使用函数点亮LED灯3.9、下载验证3.10、总结0、前言 虽然我们上面用寄存器点亮了 LED,乍看一下好像代码也很简单,但是我们别侥幸以后就可以一直用寄存器开发。在用寄存器点亮 LED 的原创 2022-01-18 13:37:21 · 479 阅读 · 0 评论 -
06、使用寄存器点亮LED灯
文章目录1、GPIO简介2、GPIO框图剖析2.1、基本结构分析2.2、GPIO工作模式3、实验:使用寄存器点亮LED灯3.1、硬件连接3.2、启动文件3.3、stm32f10x.h 文件3.4、main文件3.5、下载验证1、GPIO简介 GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚,STM32 芯片 的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32 芯片的 GPIO 被分成很多组,每组有 16 个引脚,如型号为 STM32原创 2021-12-22 15:14:48 · 506 阅读 · 0 评论 -
05、新建工程—寄存器版
文章目录1、新建工程1.1、新建本地工程文件夹1.2、新建工程2、下载程序1、新建工程1.1、新建本地工程文件夹 为了工程目录更加清晰,我们在本地电脑上新建 1 个文件夹用于存放整个工程,如命名为“LED”,然后在该目录下新建2个文件夹,具体如下:工程目录文件夹清单名称作用Listing存放编译器编译时候产生的 c/汇编/链接的列表清单Output存放编译产生的调试信息、hex 文件、预览信息、封装库等在本地新建好文件夹后,在文件夹下新建一些文件:工程目原创 2021-12-21 19:30:41 · 563 阅读 · 0 评论 -
04、什么是寄存器
文章目录1、什么是寄存器2、STM32长啥样3、芯片里面有什么3.1、ICode 总线3.2、驱动单元3.3、被动单元4、存储器映射4.1、存储器映射5、寄存器映射5.1、STM32的外设地址映射5.2、C 语言对寄存器的封装5.3、修改寄存器的位操作方法1、什么是寄存器 我们经常说寄存器,那么什么是寄存器?这是我们本章需要讲解的内容,在学习的过 程中,大家带着这个疑问好好思考下,到最后看看大家能否用一句话给寄存器下一个定义。2、STM32长啥样 我们开发板中使用的芯片是 144pin 的原创 2021-12-21 14:11:49 · 1285 阅读 · 0 评论 -
03、初识STM32
文章目录1、什么是STM321.1、STM32 诞生的背景2、STM32能做什么2.1、智能手环2.2、微型四轴飞行器3、STM32怎么选型3.1、STM32分类3.2、STM32命名方法3.3、选择合适的MCU4、开始分配原理图IO1、什么是STM32 STM32,从字面上来理解,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示 32 位,合起来理解,STM32 就是指 ST 公司开发的 32 位微控制器。在如今的 32 位控制器当中,STM32 可以说是最璀璨的新星原创 2021-12-20 15:10:38 · 641 阅读 · 0 评论 -
02、如何用串口下载程序
文章目录1、简介2、安装USB转串口驱动3、硬件连接4、开始下载5、ISP 一键下载原理分析5.1、ISP 简介5.2、ISP 普通下载5.3、BOOT配置5.4、ISP 一键下载1、简介 开发板自带串口下载电流,配合上位机可实现一键 ISP 下载,不需要修改开发板上的 BOOT 设置。与仿真器相比,ISP只能下载程序,不能在线调试且下载速度慢。2、安装USB转串口驱动 STM32开发板用的 USB 转串口的驱动芯片是 CH340,要实验串口得先在电脑中安装USB转串口驱动—CH340版本。驱动原创 2021-12-20 09:41:38 · 5998 阅读 · 0 评论 -
01、如何用DAP仿真器下载程序
文章目录1、仿真器简介2、硬件连接3、仿真器配置3.1、Debug选项配置3.2、Utilities 选项配置3.3、Debug Settings 选项配置4、选择目标板5、下载程序1、仿真器简介 本仿真器遵循 ARM 公司的 CMSIS-DAP 标准,支持所有 基于 Cortex-M 内核的单片机,常见的 M3、M4 和 M7 都可以完美支持。支持下载和在线仿真程序,支持 XP/WIN7/WIN8/WIN10 这四个操作系统,属于HID设备,跟鼠标键盘一样,无需安装驱动,支持JTAG和SW原创 2021-12-18 16:40:17 · 3675 阅读 · 0 评论 -
00、ARM微处理器的概述
文章目录1、ARM2、ARM 微处理器的应用领域及特点2.1、ARM 微处理器的应用领域2.2、ARM 微处理器的特点3、ARM微处理器系列4、ARM Cortex 系列简介5、ARM微处理器的应用1、ARM ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM 技术知识产权(IP) 核的微处理器,即我们原创 2021-12-18 16:11:38 · 588 阅读 · 0 评论