嵌入式开发
文章平均质量分 95
本专栏将带您深入学习STM32微控制器的各个方面,包括硬件介绍、底层驱动、RTOS应用、外设驱动、通信协议等。无论您是初学者还是有经验的开发者,都能在这里找到系统、全面的学习路径。通过清晰教程、实用技巧和丰富实例,助您快速成为STM32开发的专家。订阅即刻启程,加入我的行列,一起探索STM32嵌入式
未来可期,静待花开~
刚入行的技术猿一枚,记录学习过程中重要技术理论,谢谢关注,欢迎交流分享!
展开
-
嵌入式开发一:初识Stm32
嵌入式,⼀般是指嵌⼊式系统。本质上是计算机系统的⼀种。计算机系统的应用市场: ①服务器市场:超强性能的处理器 ②桌面市场:通用处理器 ③嵌入式市场:嵌入式处理器。如何理解嵌入式系统?是以应用为中心,以计算机技术为基础,软硬件可裁剪适用于对功能、可靠性、成本、体积、 功耗有严格要求的专用计算机系统。嵌入式系统通常是嵌入到目标设备中的,为特定的任务提供计算和控制功能。是将应用程序、操作系统、和计算机硬件集成在⼀起的系统。单片机: Single-Chip Microcomputer,单片微型计算机。原创 2024-04-27 06:30:37 · 1128 阅读 · 0 评论 -
嵌入式开发二:搭建开发环境
我们开发 STM32 需要用到一些开发工具,如:IDE、仿真器、串口调试助手等。常见的工 具如表 3.1.1 所示:表中加粗部分是我开发使用的 STM32开发工具,即IDE推荐使用MDK、仿真器推荐使用DAP、串口调试助手推荐使用XCOM, 接下来我们介绍这几个软件的安装。至此,STM32 的开发环境就搭建完成了,关于如何使用串口助手与单片机进行通信,主要在后面串口通信进行详细分析与总结!原创 2024-04-29 23:19:32 · 1013 阅读 · 0 评论 -
嵌入式开发三:STM32初体验
经过以上对比,因此我们推荐使用 SWD下载,强烈推荐大家购买一个仿真器(如ST LINK、 CMSIS DAP 等),可以极大的方便学习和开发。不推荐使用串口下载(速度慢、无法仿真和调 试)和 JTAG 下载(占用 IO 多)。在正常编译完例程以后(0 错误,0 警告),点击:(开始/停止仿真按钮。原创 2024-05-02 13:06:17 · 1570 阅读 · 2 评论 -
嵌入式开发四:STM32 基础知识入门
define 是 C 语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方 便。常见的格式:#define 标识符 字符串“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。例如: #define HSE_VALUE 8000000U#define PLL_M 8 //定义标识符 PLL_M 的值为 8。定义标识符 HSE_VALUE 的值为 8000000,数字后的 U 表示 unsigned 的意思。原创 2024-05-03 11:59:42 · 1710 阅读 · 0 评论 -
嵌入式开发五:认识寄存器开发与标准库开发
以上所说的固件库是指“STM32 标准函数库”,它是由 ST 公司针对 STM32 提供的函数接口,即 API (Application Program Interface),开发者可调用这些函数接口来配置 STM32 的寄存器,使开发人员得以脱离最底层的寄存器操作,有开发快速,易于阅读,维护成本低等优点。原创 2024-05-04 13:31:50 · 1064 阅读 · 0 评论 -
嵌入式开发六:新建工程—寄存器版
通过前面的学习,我们对 STM32 有了个比较清晰的了解,本次我们将讲解新建寄存器库版本 MDK 工程的详细步骤。后期我们基于固件库开发,借助Keil5的环境配置助手界面RTE,不需要进行文件移植,本节的寄存器版本,作为了解内容,学习整个新工程的创建过程。原创 2024-05-04 20:09:51 · 1047 阅读 · 0 评论 -
嵌入式开发七:新建工程与环境配置—库函数版
上一节我们学习了如何新建寄存器版本的工程,其中需要移植文件,相对来说,比较麻烦,并且我们是基于标准库的开发,因此,在这一节,我会详细介绍如何利用环境配置助手RTE新建库函数版本的工程,方便我们日后做开发,请务必熟练掌握!原创 2024-05-05 11:42:33 · 859 阅读 · 0 评论 -
嵌入式开发八:STM32启动过程分析
使用一个STM32芯片,对于内存而言有两个直观的指标就是 RAM 大小,FLASH大小,那么着两个大小意味着什么?怎么去理解这两个内存,那就得从什么是Flash,什么是RAM说起。⾸先,对于嵌入式开发,⼀般使⽤的是C语言开发。⽽我们知道C语言都是从main函数开始 的,因此,对于处理器来说它是如何找到并执行main函数的,就需要用到启动文件,就是各种 startup_xxx.s文件。对于我们STM32f407来说其启动⽂件为:startup_stm32f40_41xx.s。原创 2024-05-08 21:13:26 · 1263 阅读 · 0 评论 -
嵌入式开发九:STM32时钟系统
时钟是由电路产生的具有周期性的脉冲信号,众所周知,时钟系统是 CPU 的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。相当于单片机的心脏,要想使用单片机的外设必须开启相应的时钟,因为驱动外设的本质是操作寄存器,而寄存器是由D触发器构成,而触发器需要时钟才能改写值,所以要想操作寄存器必须开启对应外设的时钟。原创 2024-05-09 22:07:58 · 734 阅读 · 0 评论 -
嵌入式开发十:STM32开发基础入门知识补充
CM4 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256 级的可编程中断设置。但 STM32F4 并没有使用 CM4 内核的全部东西,而是只用了它的一 部分。STM32F40xx总共有 92 个中断, 在 92 个中断里面,包括 10 个内核中断和 82 个可屏蔽中断,具有16 级可编程的中断优先级,而我们常用的就是这 82 个可屏蔽中断。/*!/*!/*!/*!/*!/*!/*!STM32F4 的中断在这些寄存器的控制下有序的执行的。原创 2024-05-10 00:02:30 · 709 阅读 · 0 评论 -
嵌入式开发十一:GPIO端口的八种工作模式
GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。STM32 芯片的 GPIO 引脚与外部设备连接起来, 从而实现与外部通讯、控制以及数据采集的功能。GPIO的作用:负责采集外部器件的信息或者控制外部器件工作,即输入输出可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。原创 2024-05-10 23:44:30 · 764 阅读 · 0 评论 -
嵌入式开发十二:初入STM32世界—跑马灯实验
任何一个单片机,最简单的外设莫过于 IO 口的高低电平控制了,本章将通过一个经典的跑马灯程序,带大家开启 STM32F4 之旅,通过本次的学习,你将了解到 STM32F4 的 IO 口作为输出使用的方法。我们将通过代码控制正点原子探索者 STM32F4 开发板上的两个 LED:DS0 和 DS1 交替闪烁,实现类似跑马灯的效果。目录一、实现的功能二、硬件设计三、程序设计3.1 创建工程模板3.2 工程中创建对应的文件3.3 添加文件路径3.4 添加相应的外设固件库和所需文件3.5 程序流程图3.5.1原创 2024-05-14 23:41:21 · 837 阅读 · 0 评论 -
嵌入式开发十三:有趣的蜂鸣器实验
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类 型。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V 直流工作电压),多谐振荡器起振,输出 1.5~5kHZ 的音频信号,阻抗匹配器推动压电蜂鸣片发声。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。原创 2024-05-15 10:01:21 · 567 阅读 · 0 评论 -
嵌入式开发十四:按键输入实验
按键是一种电子开关,使用时轻轻按开关按钮就可使开关接通,当松开手时, 开关断开。我们开发板上使用的按键及内部简易图如下图所示:按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态,如 果按键按下,初始导通状态变为断开,初始断开状态变为导通。几乎每个开发板都会板载有独立按键,因为按键用处很多。常态下,独立按键是断开的, 按下的时候才闭合。每个独立按键会单独占用一个 IO 口,通过 IO 口的高低电平判断按键的状态。但是按键在闭合和断开的时候,都存在抖动现象。原创 2024-05-15 19:25:51 · 1048 阅读 · 0 评论 -
嵌入式开发十五:STM32中断系统
中断其实就是当 CPU 执行程序时, 由于发生了某种随机的事件(外部或内部),引起 CPU 暂时中断正在运行的程序, 转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程就称为中断,简而言之:打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断。引发中断的称为中断源。比如:看电视时突然门铃响,那么门铃响就相当于中断源。事件的发出者--------中断源此次事件本身-------中断中断是⼀个动作。原创 2024-05-16 02:01:51 · 743 阅读 · 0 评论 -
嵌入式开发十六:外部中断实验1:通过外部中断控制灯亮灭
中断在嵌入式应用中占有非常重要的地位,几乎每个控制器都有中断功能。中断对保证紧急事件得到第一时间处理是非常重要的,本篇博客主要是外部中断的一个简单应用,我们设计使用按键来作为触发源,使得控制器产生中断,并在中断服务函数中实现控制LED灯的任务。通过这样一个简单的中断实验来熟悉中断的配置过程,为后续使用中断打好基础。原创 2024-05-16 13:35:18 · 790 阅读 · 0 评论 -
嵌入式开发十七:USART串口通信
每秒种传送二进制数码的位数(二进制系统码元数等于二进制比特数),单位为Baud。串口通信(Serial Communication)设备间通过使用串行接口来通信称之为串口通信,外设和计算机间,按位进行传输数据的一种通信方式,属于串行通信方式。串口(串行通信接口)是一种通信接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。原创 2024-05-16 21:38:03 · 931 阅读 · 0 评论