STM32嵌入式软件开发工程师课程
文章平均质量分 84
1.精通C语言,具有丰富的单片机及ARM Cortex构架MCU,如STM32、嵌入式平台开发经验;
2.熟练运用IAR/Keil MDK UCOS等开发环境,能够独立完成单片机程序开发工作;
3.熟练使用UART/SPI/I2C/ADC/DMA/TIME等常用外设接口;
4.能够看懂单片机电路图
Qt历险记
90后医疗设备研发QT开发高级工程师:专攻Qt/CSS/UI设计/PS/Ai/Ae、SQLite/MySQL、C/C++、STM32/MCU、网络编程TCP/UDP/Socket、数据结构与算法、Linux、底层驱动。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32 外设SPI、I2C、UART、I2S、GPIO、SDIO、CAN
STM32 外设SPI、I2C、UART、I2S、GPIO、SDIO、CAN【1】总线【2】SPI 串行外设接口【3】I2C 两线式串行总线【3】UART 通用异步串行口【4】SPI、I2C和UART做个比较【5】I2S IC间音频总线【6】GPIO 通用输入/输出【7】SDIO SD型的扩展接口【8】CAN 控制器局域网原创 2022-09-30 22:47:42 · 7554 阅读 · 1 评论
-
Kile5安装教程和创建一个工程举例【图文STM32F407ZE芯片为例】
【一】开始安装 keil5 STM32F407ZE为例【二】STM32工程创建步骤【三】安装J-Link驱动+ST-LINK驱动及教程【四】STM32的命名规则举例 ---》面试题【五】STM32F407ZE原理图原创 2021-12-15 20:16:01 · 8605 阅读 · 4 评论
-
STM32 | FreeRTOS 递归信号量
拥有互斥量的任务必须调用API函数xSemaphoreGiveRecursive()将拥有的递归互斥量全部释放后,该信号量才真正被释放。比如,一个任务成功获取同一个互斥量5次,那么这个任务要将这个互斥量释放5次之后,其它任务才能获取到它。互斥量的使用比较单一,因为它是信号量的一种,并且它是以锁的形式存在。在初始化的时候,互斥量处于开锁的状态,而被任务持有的时候则立刻转为闭锁的状态。如果创建成功则返回一个递归互斥量句柄,用于访问创建的递归互斥量。使能递归互斥量,详细文件在FreeRTOS.h。原创 2025-05-17 15:28:08 · 610 阅读 · 0 评论 -
STM32 | FreeRTOS 互斥信号量
互斥信号量是一种特殊的二值信号量,用于实现对临界资源的独占式处理。与普通信号量不同,互斥信号量支持所有权、递归访问和防止优先级翻转的特性。互斥信号量的状态只有开锁或闭锁两种,任务持有互斥信号量时处于闭锁状态,释放后则开锁。FreeRTOS中的互斥信号量通过优先级继承机制降低优先级翻转的影响,即当高优先级任务申请被低优先级任务占用的资源时,系统会临时提升低优先级任务的优先级,以减少高优先级任务的阻塞时间。互斥信号量适用于多任务环境下对临界资源的保护,确保资源的独占访问,但不能在中断服务函数中使用。原创 2025-05-17 15:24:03 · 1088 阅读 · 0 评论 -
STM32 | FreeRTOS 事件标志组
但是它与信号量不同的是,事件的发送操作是不可累计的,而信号量的释放动作是可累计的。而任务2对事件3与事件5感兴趣(逻辑与),当且仅当事件3与事件5都发生的时候,任务2才会被唤醒,如果只有一个其中一个事件发生,那么任务还是会继续等待事件发生。在某些场合,可能需要多个时间发生了才能进行下一步操作,比如一些危险机器的启动,需要检查各项指标,当指标不达标的时候,无法启动,但是检查各个指标的时候,不能一下子检测完毕啊,所以,需要事件来做统一的等待,当所有的事件都完成了,那么机器才允许启动,这只是事件的其中一个应用。原创 2025-05-17 15:17:57 · 785 阅读 · 0 评论 -
STM32 | FreeRTOS 消息队列
队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定阻塞的任务时间 xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞状态以等待队列数据有效。3. 在获取队列中的消息时候,我们必须要定义一个存储读取数据的地方,并且该数 据区域大小不小于消息大小,否则,很可能引发地址非法的错误。原创 2025-05-17 15:10:30 · 1371 阅读 · 0 评论 -
STM32 | 软件定时器
软件定时器是通过程序模拟的定时器,能够由单个硬件定时器模拟出多个软件定时器,解决了硬件资源限制的问题。然而,软件定时器在运行和维护时会消耗CPU资源,且精度低于硬件定时器,常用于简单的定时控制,如喂狗、控灯等。在Linux、μC/OS、FreeRTOS等操作系统中,软件定时器的实现原理相似:通过硬件定时器产生时钟节拍,程序定期扫描所有运行中的软件定时器,比较其到期时间与全局时钟标记,判断是否到期并执行回调函数。配置软件定时器时,需设置优先级、队列长度和任务堆栈大小。FreeRTOS中,软件定时器的创建、启动原创 2025-05-17 14:23:42 · 1061 阅读 · 0 评论 -
STM32 | ESP8266 服务器与客户端
AT+CWJAP=“ESP8266”,“0123456789” //连接自己要连接的网络,前面是SSID后面是密码,具体AT指令可以参考官方的AT集。AT+CIPSTART=0,“TCP”,“192.168.4.1”,8080 //其中的IP号和端口号是自己在局域网内建立的。发送命令:AT+CIPMUX=1 和AT+CIPSERVER=1,8080(因为只有在开启多连接模式的时候才能开启服务器模式)发送命令:AT+CWSAP=“ESP8266”,“0123456789”,11,0。原创 2024-11-17 15:51:31 · 2379 阅读 · 0 评论 -
STM32 | 超声波避障小车
由于超声波测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。5、小车的检测距离、设定的安全距离、速度(模拟)实时显示在OLED中。1、可通过手机APP控制小车前进、后退、左转、右转、加速、减速功能。6、可航机控制超声波方向。原创 2024-11-16 16:18:28 · 1278 阅读 · 0 评论 -
STM32 | 空气净化器
最主要的功能是去除空气中的颗粒物,包括过敏原、室内的PM2.5等,同时还可以解决由于装修或者其他原因导致的室内、地下空间、车内挥发性有机物空气污染问题。常用的空气净化技术有:吸附技术、负(正)离子技术、催化技术、光触媒技术、超结构光矿化技术、HEPA高效过滤技术、静电集尘技术等;空气净化器又称“空气清洁器”、空气清新机、净化器,是指能够吸附、分解或转化各种空气污染物(一般包括PM2.5、粉尘、花粉、异味、甲醛之类的装修污染、细菌、过敏原等),有效提高空气清洁度的产品,主要分为家用 、商用、工业、楼宇。原创 2024-11-16 16:13:33 · 2750 阅读 · 0 评论 -
STM32 | 体温枪
随着社会与科技的发展,人类越来越注重个人的身体健康,常在家中备有一个药品或者是相关的身体检测的工具,基中最为常见的体温计,特别家庭当中有小孩,体温计是必不可少的。体温的测量最为常见的水银体温计,水银体温体有着明显的缺点,一是体温测量时间较久,一般需要5分钟左右,二要求测量位置唯一性,只能在腋下,三是小孩测量需要大人陪同方可完成测量。在这样的情景下,电子体测枪就能够很多克服传统的体温计的缺点,从而得到了市场的认可,特别是在2020年,全球疫情的迅速发展情况中,体温枪在防疫工作中取到了至关重要的作用。原创 2024-11-16 16:10:32 · 334 阅读 · 0 评论 -
STM32 | 小区环境检测系统
现在一些智慧小区安装小区环境检测系统,能够将小区当前位置的温度、湿度、光照强度,小区空气质量及自己所在城市所在天气信息实时显示在点阵的LED屏幕上。随着科技的发展,人们的生活水平越来越高,对居住的要求也越来越高,所以在选择居住的地方时会考虑小区的便捷性,智能性。4、通过ESP8266连接小区的无线网络,每4小时对时间进行校验,通过无线网络获取当地天气信息,并将信息显示于OLED当中,可根据天气信息给业主提供温馨提示。3、采集小区内的空气质量信息,并实时显示于OLED中,根据空气质量作息帮出相关的语音提示。原创 2024-11-16 16:07:17 · 429 阅读 · 0 评论 -
STM32 | 智能手环项目
小小智能手环个头不大,其功能还是比较强大的,其开发涉及智能手环MCU数据指令到蓝牙IC的传输、蓝牙到APP的数据通信协议、APP到手机内部的通信调试逻辑实现、APP数据到云端服务器的数据库算法设计等一系列的开发。通过智能手环,用户可以记录日常生活中的锻炼、睡眠、部分还有饮食等实时数据,并将这些数据与手机、平板、ipod touch同步,起到通过数据指导健康生活的作用。其内置的电池可以坚持10天以上,振动马达非常实用,简约的设计风格也可以起到饰品的装饰作用。2、可通过手机蓝牙设置手环闹钟时间。原创 2024-11-12 19:07:05 · 587 阅读 · 0 评论 -
FreeRTOS | 信号量(第十四天)
>>信号量,Semaphore:英[ˈseməfɔː(r)]。信号量常用于任务的同步,通过该信号,就能够控制某个任务的执行,这个信号具有计数值,因此,可以称为计数信号量。计数信号量可以用于资源管理,允许多个任务获取信号量访问共享资源,但会限制任务的最大数目。访问的任务数达到可支持的最大数目时,会阻塞其他试图获取该信号量的任务,直到有任务释放了信号量。原创 2024-11-04 20:14:19 · 952 阅读 · 0 评论 -
FreeRTOS | 开中断与临界区(第十四天)
FreeRTOS|开中断与临界区原创 2024-11-03 09:58:59 · 840 阅读 · 2 评论 -
FreeRTOS | 内核控制函数和时间管理(第十四天)
>>2.1 微秒延时//系统定时器的重载值 uint32_t ticks=nus*(SystemCoreClock/1000000);//总共要等待的滴答数目 told=SysTick->VAL;//刚进入时的计数器值 //挂起所有任务[可选] vTaskSuspendAll(); while(1) { //获取当前计数值 tnow=SysTick->VAL; if(tnow!=told) { //SYSTICK是一个递减的计数器 if(tnow原创 2024-10-30 20:35:11 · 891 阅读 · 0 评论 -
FreeRTOS | 任务管理(第十四天)
FreeRTOS 是一款市场领先的嵌入式系统, RTOS 支持 40 多种处理器架构,内存占用小,执行时间快,具有尖端的 RTOS 功能和库,包括对称多处理 (SMP)、具有 IPv6 支持的线程安全 TCP 堆栈以及与云服务的无缝集成。它是开源的,并得到了积极的支持和维护。原创 2024-10-27 11:41:41 · 751 阅读 · 0 评论 -
FreeRTOS | STM32F407 FreeRTOS移植(第十四天)
STM32F407 FreeRTOS移植原创 2024-10-20 12:02:47 · 1200 阅读 · 0 评论 -
FreeRTOS | 原理介绍和资源get(第十四天)
FreeRTOS 初学者指南旨在帮助您了解 RTOS 概念、用例和扩展功能,并通过演示和教程帮助您开始自己的首个项目。原创 2024-10-19 12:49:39 · 1001 阅读 · 0 评论 -
RTOS | 那么什么是RTOS?三大操作系统?(第十四天)
2.RT-Thread国产操作系统,YYDS网址:https://www.rt-thread.org/3.FreeRTOS网址:https://www.freertos.org/原创 2024-10-19 10:55:42 · 4122 阅读 · 0 评论 -
STM32 | STM32F4OTA_ESP8266_Bootloader为引导程序远程更新的代码(APP)
>>所有内容会在今年更新。原创 2024-10-13 20:43:23 · 1022 阅读 · 0 评论 -
【STM32 向量表 在线升级MCU程序】
中断向量表这个数组在flash中的存放地址则一般是固定的,比如STM32的0x08000000,当然也可以人为修改,代码示例为:SCB->VTOR= FLASH_BASE | 0x10000,表示将中断向量表从地址0x08000000移动到0x08010000,这样就有了两张分别存放在地址0x08000000的中断向量表1和地址0x08010000的中断向量表2。因此,我们无法只使用表1,因为表1的中断向量值不变,无法对应每次APP更改时生成的中断函数地址,所以需要重新设置一个表2。原创 2024-10-13 14:01:52 · 915 阅读 · 0 评论 -
STM32 | MQTT+esp8266(第十四天)
>>选择MQTT库:可以使用像Eclipse Paho、Mosquitto等开源MQTT库,针对嵌入式开发的有很多,诸如MQTT-C、mqtt_client等。设置开发环境:根据你的STM32开发板,设置好开发环境,比如STM32CubeIDE或Keil等。网络连接:确保你的STM32能够通过Wi-Fi、以太网等方式连接到互联网。通常会用到ESP8266、ESP32等Wi-Fi模块或以太网模块(如W5500)。添加MQTT库:将选定的MQTT库添加到你的STM32项目中。原创 2024-10-13 13:51:11 · 1463 阅读 · 0 评论 -
STM32 | SPI(第十三天)移植STM32F103平台RFID程序到STM32F407平台
l硬件上为4根线。l主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。l。原创 2024-08-31 20:29:17 · 1718 阅读 · 0 评论 -
STM32 | STM32 FLASH第十二天(实现代码STM32CUBEMX)
ST制作的中间件堆栈(USB主机和设备库,STemWin)带有允许轻松重用的许可模式, 只要是在ST公司的MCU 芯片上使用,库中的中间件(USB 主机/设备库,STemWin)协议栈即被允许随便修改,并可以反复使用。可以说HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。原创 2024-08-24 20:45:03 · 1312 阅读 · 0 评论 -
STM32 | SPI+flash闪存(第十一天)W25Q128举例
STM32 | SPI+flash闪存(第十一天)W25Q128举例原创 2024-08-11 13:02:56 · 1600 阅读 · 0 评论 -
STM32 | ADC+RS485编写代码,实现光敏电阻控制灯的亮度
ADC, Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号.例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。原创 2024-08-04 18:30:16 · 975 阅读 · 0 评论 -
STM32 | ADC+RS485实战(第十天)
ADC, Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号.例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。原创 2024-08-04 17:04:22 · 1228 阅读 · 0 评论 -
STM32 | ADC+RS485(第十天)
ADC, Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号.例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。原创 2024-08-04 11:35:52 · 1503 阅读 · 0 评论 -
STM32 | IIC OLED源码实战(第九天)
I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps。IIC是半双工通信方式,可实现一对多。SDA:数据线,用于传输数据;可主机到从机,也可以从从机到主机。SCL:时钟线,只能由主机发送,用于数据同步,一个脉冲发送/接收一位数据。原创 2024-07-28 14:48:44 · 1033 阅读 · 0 评论 -
STM32 | IIC 源码实战(第九天)
I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps。IIC是半双工通信方式,可实现一对多。SDA:数据线,用于传输数据;可主机到从机,也可以从从机到主机。SCL:时钟线,只能由主机发送,用于数据同步,一个脉冲发送/接收一位数据。原创 2024-07-28 13:40:59 · 918 阅读 · 0 评论 -
STM32 | IIC(第九天)
I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps。IIC是半双工通信方式,可实现一对多。SDA:数据线,用于传输数据;可主机到从机,也可以从从机到主机。SCL:时钟线,只能由主机发送,用于数据同步,一个脉冲发送/接收一位数据。原创 2024-07-28 11:36:20 · 427 阅读 · 0 评论 -
STM32 | IIC(第九天)
I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps。IIC是半双工通信方式,可实现一对多。SDA:数据线,用于传输数据;可主机到从机,也可以从从机到主机。SCL:时钟线,只能由主机发送,用于数据同步,一个脉冲发送/接收一位数据。原创 2024-07-26 20:51:34 · 648 阅读 · 0 评论 -
STM32 | RTC闹钟实战
RTC, 即实时时钟(Real-Time Clock),是一种硬件设备,用于在没有外部电源的情况下提供精确的时间信息。RTC的主要功能是保持系统时间,即使在主电源断开或系统处于休眠状态时,它也能持续提供准确的时间信息。RTC通常包含以下关键组件:晶体振荡器:RTC使用一个晶体振荡器作为时钟源,晶体振荡器提供一个非常稳定的频率,通常是32.768 kHz。这个频率相对于其他类型的振荡器来说非常稳定,能够提供长时间的精确时间保持。电压稳定器:RTC需要稳定的电压来维持其内部电路的工作。原创 2024-07-25 20:15:52 · 1084 阅读 · 0 评论 -
STM32 | 看门狗IWDG喂狗实战
看门狗概述## 功能描述看门狗(Watchdog)是一种用于监控程序运行状态的保护机制。当程序出现异常或长时间无响应时,看门狗可以自动重启程序或发送警报通知系统管理员。这种机制在嵌入式系统和实时系统中尤为重要,因为它可以确保系统的稳定性和可靠性。## 实现原理看门狗通常通过一个定时器来实现。程序启动时,会启动一个定时器,并设置一个阈值(如5分钟)。程序在正常运行过程中,需要定期重置这个定时器,以表明程序仍在正常运行。原创 2024-07-25 19:40:39 · 990 阅读 · 0 评论 -
STM32 | 看门狗+RTC源码解析
独立看门狗操作步骤独立看门狗操作步骤需要添加的库函数文件:stm32f4xx_iwdg.c1、 取消寄存器写保护:2、设置独立看门狗的预分频系数,确定时钟:3、设置看门狗重装载值,确定溢出时间:4、使能看门狗5、应用程序喂狗:RTC时间与日期配置流程RTC时间与日期配置流程所需要的库函数文件:stm32f4xx_rtc.c与stm32f4xx_pwr.c2、RTC闹钟RTC中断所有 RTC 中断均与 EXTI(外部中断控制) 控制器相连。原创 2024-07-18 22:10:32 · 1296 阅读 · 0 评论 -
STM32 | 独立看门狗+RTC时间(第八天)
01、独立看门狗1、独立看门狗概述在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog)原创 2024-07-14 12:00:00 · 1345 阅读 · 0 评论 -
【STM32F407ZET6】图文
STM32F407ZET6 原理图原创 2024-07-13 21:15:11 · 3360 阅读 · 0 评论 -
STM32 | STM32中GPIO的8种工作模式
STM32 | STM32中GPIO的8种工作模式原创 2024-06-19 21:24:23 · 1211 阅读 · 0 评论 -
STM32 | 独立看门狗 | RTC(实时时钟)
STM32 | 独立看门狗 | RTC(实时时钟)原创 2024-06-10 11:59:46 · 1532 阅读 · 1 评论
分享