嵌入式STM32入门
文章平均质量分 93
STM32系列内容
大象荒野
不划边界
展开
-
FreeRTOS(速记版)
中断是微控制器一个很常见的特性,中断由硬件产生,当中断产生以后 CPU 就会中断当前的流程转而去处理中断服务,Cortex-M 内核的 MCU 提供了一个用于中断管理的嵌套向量中断控制器(NVIC)。Cotex-M3 的 NVIC 最多支持 240 个 IRQ(中断请求)、1 个不可屏蔽中断(NMI)、1 个Systick(滴答定时器)定时器中断和 11个系统异常。Cortex-M 处理器有多个用于管理中断和异常的可编程寄存器,这些寄存器大多数都在NVIC和系统控制块(SCB)中,原创 2024-09-11 12:11:33 · 688 阅读 · 0 评论
-
STM32总线和时钟树(速记版)
STM32存储器结构和系统架构原创 2024-08-16 21:43:01 · 1355 阅读 · 0 评论
-
模拟电路(速记版)
物联网模拟电路相关原创 2024-11-19 21:58:31 · 930 阅读 · 0 评论 -
STM32标准库-待机模式
STM32待机模式是最低功耗模式,关闭电压调节器,1.8V供电区断电,PLL、HSI、HSE振荡器停止,SRAM和寄存器内容不保,仅备份寄存器和待机电路保持供电。待机时,仅复位、TAMPER(特定配置下)及使能的WK_UP引脚有效,其余IO引脚高阻。可通过设置电源控制寄存器PWR_CR的PDDS位,使CPU进入深度睡眠时进待机模式。唤醒后,除PWR_CSR外所有寄存器复位,执行流程与复位后相同。再次长按则进入待机模式,DS0 关闭。低功耗模式下,电源控制寄存器PWR_CR可设置开/关。原创 2024-11-05 13:09:54 · 1057 阅读 · 0 评论 -
STM32标准库-DMA实验
DMA控制器支持绕过CPU直接传输数据。STM32一般有DMA1、DMA2两个控制器。DMA支持各种外设、闪存、SRAM作为数据源和数据目标,具体可查表。同时仅一个有效。DMA(直接存储器访问)允许数据在地址空间间高效复制,由DMA控制器执行,无需CPU干预。STM32可配备2个DMA控制器(DMA1有7通道,DMA2有5通道,DMA2仅在大容量产品中存在),各通道管理外设对存储器的访问请求,并通过仲裁器协调优先级,提高CPU效率。字节、半字、全字对齐源和目标地址。原创 2024-11-05 11:44:01 · 805 阅读 · 0 评论 -
STM32-Modbus协议(一文通)
modbus协议STM32相关实现原创 2024-10-18 16:51:44 · 1580 阅读 · 0 评论 -
迪文串口屏例程
迪文串口屏例程 型号 DMG10600C070_03WTC 七寸原创 2024-10-17 10:33:03 · 1006 阅读 · 0 评论 -
STM32F4- SD卡和 FATFS文件系统
正点原子SD卡相关原创 2024-10-16 16:32:46 · 1115 阅读 · 0 评论 -
STM32F4-内存管理
SRAM的内存管理原创 2024-10-15 16:17:57 · 1129 阅读 · 0 评论 -
看门狗IWDG、WWDG(速记版)
内置的看门狗有独立看门狗 IWDG和窗口看门狗 WWDG都用来在程序卡死的时候复位程序。独立看门狗只有一个最晚时间界限。窗口看门狗有一个最早界限和最晚界限。独立看门狗有独立的时钟,一般设置来源时钟LSI40KHz。窗口看门狗挂靠在APB1总线上36MHz。原创 2024-08-01 21:53:30 · 944 阅读 · 0 评论 -
STM32HAL库--定时器篇(速记版)
STM32F4有2个基本定时器,TIM6 和 TIM7。基本定时器框图有三个部分,时钟源控制器和时基单元。时基单元又有PSC预分频器CNT计数器和ARR自动重装载寄存器。基本定时器相关寄存器有6个:PSC 预分频寄存器,存储预分频值。预分频9000就写8999。CNT 计数器,存当前计数值。ARR 自动重装载寄存器。存储重装载值。计数9000就写8999。CR1 控制寄存器1。有ARPE位控制自动重装载预装载使能。有CEN位控制计数使能。原创 2024-06-20 20:38:00 · 1497 阅读 · 0 评论 -
实时时钟RTC+电源控制PWR(速记版)
Unix时间戳以秒为单位从1970年1月1日00:00:00 UTC(协调世界时间)开始计算。这个时间点被称为“Unix纪元”(Unix Epoch)。Unix时间戳表示从这个起始时间点到指定时间点的秒数。Unix时间戳与时区无关。无论在世界的哪个地方,Unix时间戳都是相同的。原创 2024-08-01 20:28:09 · 1093 阅读 · 0 评论 -
CAN通信(速记版)
CAN 协议经过 ISO 标准化后有两个标准:ISO11898 标准和 ISO11519-2 标准。前者适用通信速率为 125Kbps~1Mbps 场景,后者适用125Kbps以下场景。STM32 自带基本扩展 CAN(bxCAN)。它支持 CAN 协议 2.0A 和 2.0B,都属于11898标准。支持最高传输速率为1 Mbps。CANFD类似CAN2.0,支持5Mbps。2.0A使用标准帧格式,而2.0B使用扩展帧格式。原创 2024-08-08 11:49:46 · 853 阅读 · 0 评论 -
MQTT(速记版)
MQ一般指消息队列中间件,而MQTT是一种轻量级、发布-订阅模式的消息传输协议。MQTT是基于TCP/IP协议族的,位于应用层。TCP/IP协议族的网络模型:四层模型:应用层、传输层、网络层、数据链路层应用层: HTTP, HTTPS, FTP,SMTP , POP3, ssh MQTT传输层: TCP, DUP网络层: IP数据链路层双向通信:发布、订阅模式是双向通信,客户端既可以向主题发布消息,也可以订阅接收特定主题上的消息。连续、有状态的会话:MQTT 提供了客户端与。原创 2024-08-03 11:22:25 · 126 阅读 · 0 评论 -
每日面试题Day1
声明不为变量开辟空间,是对变量的类型和名称进行说明。原创 2024-08-12 20:59:19 · 956 阅读 · 0 评论 -
每日面试题Day2
给一个short,末端放个1,然后16位的 Short 用数组拆成两个 8 位的char,判断高位低位哪边大。修饰函数参数、函数返回值、定义常量、修饰对象。sizeof是获取参数的内存大小,参数 \0 会保存在代码段常量区,2字节。定义静态变量或者函数,静态变量只初始化一次,如果在类里就属于类。防止编译器优化,a=1,a=2,a=3不被优化成a=3,C/C++中,strlen是逐字符扫描,碰到\0结束。const 定义常量 ,define 也定义常量,,因为寄存器的值经常改变,防止读缓存。原创 2024-08-13 22:06:12 · 791 阅读 · 0 评论 -
µC/OS-III
中断是 CPU 的一种常见特性,中断一般由硬件产生,当中断发生后,会中断 CPU 当前正在执行的程序而跳转到中断对应的服务程序中去执行,ARM Cortex-M 内核的 MCU 具有一个用于中断管理的嵌套向量中断控制器(NVIC,全称:Nested Vectored Interrupt Controller)。ARM Cortex-M 的 NVIC 最大可支持 256 个中断源,其中包括 16 个系统中断和 240 个外部中断。原创 2024-08-13 21:13:59 · 973 阅读 · 0 评论 -
FMC和FSMC
他们共用地址数据总线等信号,他们具有不同的 CS 以区分不同的设备,比如外设 TFTLCD 就是用的 FMC_NE1 做片选,其实就是将 TFTLCD 当成 SRAM 来控制。至于于 ADDR[27:26] 的设置,当使用 FMC_NE1 来连接外部设备的时候,是直接在寄存器中配置区域1 的寄存器组。最大255个时钟周期。需要每隔一段时间刷新一次数据,才能保存数据,掉电丢失数据,是行列地址复用的,许多都有页模式。地址线(A0~A18),数据线(D0~D15),写信号 WE,读信号 OE,片选信号 CS,原创 2024-08-09 19:23:44 · 1296 阅读 · 0 评论 -
STM32HAL库 -- RS485接口通信(速记版)
485(一般称作 RS485/EIA-485)隶属于OSI 模型物理层,是串行通讯的一种。电气特性规定为2 线半双工,多点通信的类型。它的电气特性和 RS-232 大不一样。用缆线两端的电压差值来表示传递信号。RS485 仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议485 推荐的一主多从连接方式如图 40.1.1 所示:可作为RS485 的收发器。原创 2024-06-27 11:59:01 · 1402 阅读 · 0 评论 -
STM32HAL库 -- SPI 读写 FLASH实验(速记版)
SPI 是英语 Serial Peripheral interface 缩写,顾名思义就是串行外围设备接口。SPI 通信协议是 Motorola 公司首先在其 MC68HCXX 系列处理器上定义的。SPI 接口是一种高速的全双工同步的通信总线,已经广泛应用在众多 MCU、存储芯片、AD 转换器和 LCD 之间。大部分 STM32 有3 个SPI 接口,本实验使用的是 SPI5。SPI的引脚信息MISO(Master In / Slave Out)主设备数据输入,从设备数据输出。MOSI。原创 2024-06-27 10:48:24 · 1359 阅读 · 0 评论 -
STM32HAL库--IIC实验(速记版)
IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器以及其外围设备。IIC 是由数据线 SDA和时钟线 SCL构成的串行总线。IIC 总线有如下特点:① 数据线用来传输数据,时钟线用来同步数据收发。② 总线上每个器件都有唯一器件地址,只需知道器件地址,根据时序即可实现微控制器与器件之间的通信。③ 数据线 SDA 和时钟线 SCL都是双向线路空闲时都是 SDA 和 SCL 都是高电平。原创 2024-06-26 15:13:19 · 911 阅读 · 0 评论 -
STM32HAL库--DMA实验(速记版)
DMA,全称为:Direct Memory Access,即直接存储器访问。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。STM32F429 最多有 2 个 DMA 控制器共 16 个数据流(每个控制器 8 个),每一个 DMA控制器都用于管理一个或多个外设的存储器访问请求。每个数据流总共可以有多达 8 个通道(或称请求)。每个数据流通道都要一个。原创 2024-06-25 19:18:24 · 1440 阅读 · 0 评论 -
STM32HAL库--NVIC和EXTI
NVIC,嵌套向量中断控制器,ARM Cortex-M内核的组件,用来中断使能挂起记录中断激活标志位配置中断优先级。分别对应寄存器组有中断使能和除能 ISER[8] ICER[8] 8个*32位寄存器中断挂起和解挂 ISPR[8] ICPR[8]记录中断激活标志位 IABR[8]配置中断优先级 IP[240] 240*8位寄存器,仅用高4位,放抢占优先级和子优先级。原创 2024-06-19 11:56:44 · 1280 阅读 · 0 评论 -
STM32--IAP程序升级实验
如果我们用的 Flash 容量大到可以存储两个或多个的完整程序,在保证每个程序完整的情 况下,上电后的程序通过修改 MSP 的方式,就可以保证一个单片机上有多个有功能差异的嵌 入式软件,这就是我们要讲解的 IAP 的设计思路。appxaddr存放的是用户程序Flash的首地址,(*(volatile u32*)appxaddr)的意思是取用户程序首地址里面的数据,这个数据就是用户代码的堆栈地址,堆栈地址指向RAM,而RAM的起始地址是0x20000000。从而MSP取值和CP取值的地址不同!原创 2024-06-18 15:55:30 · 1430 阅读 · 0 评论 -
HAL库--LCD实验
Liquid Crystal Display,即液晶显示器,由:玻璃基板、背光、驱动IC等组成。全彩LCD,是一种全彩显示屏(RGB565、RGB888),可以显示各种颜色。LCD基本组成:一个像素点有RGB三种色来表示。LCD接口分类:MCU屏接口由于自带SRAM,驱动简单,大部分单片机都能驱动!一眼看过去排针多的基本上都是MCU接口的屏并口总线时序,常用于MCU屏驱动IC的访问,由Intel提出,也叫英特尔总线8080时序信号说明8080写时序8080读时序/*8080时序简化写代码*/原创 2024-06-13 20:31:41 · 760 阅读 · 0 评论 -
HAL库--内存保护(MPU)实验
说白了MPU用来管理内存和外设存储区的访问权限MPU可配置保护8/16个内存区域(看芯片型号),每个区域最小要求256字节,且每个区域还可配置为8个子区域(大小一样)。可配置16个内存区域Cache(高级缓存)是提升STM32性能的关键一步。M7内核芯片做了一级Cache支持,Cache分为数据缓存D-Cache和指令缓存I-Cache。Cache支持4种基本操作:1,使能;2,禁止;3,清空;4,无效化数据缓存D-Cache是解决CPU加速访问SRAM。原创 2024-06-13 17:33:55 · 834 阅读 · 0 评论 -
GPIO简介
上图比较关键的几个器件有 保护二极管、内部上下拉电阻、施密特触发器、P-MOS&N-MOS管一个信号输入进来,经过保护二极管,之后有两条路可以走,一个是模拟输入,也就是ADC和DAC,另一个是经过TLL肖特基触发器,之后可作为复用功能输入,两条路最后都是到达片上外设。经过TTL肖特基触发器后还可将信号保存到数据寄存器(IDR寄存器),之后可通过CPU去读ODR寄存器,这样就可以知道引脚输入的信号是高还是低(作为通用输入)原创 2024-05-10 23:24:55 · 1141 阅读 · 0 评论 -
STM32时钟系统和时钟树
正点原子提供的System文件夹包含常用的函数和驱动Systic即系统滴答定时器,包含在M3/4/7内核里面,核心是一个24位的递减计数器F1/F4/F7的Systic定时器的时钟来源于HCLK,也就是AHB总线上的时钟H7的Systic定时器的时钟来源于SYS_d1cpre_ck(H7),也就是系统的d1分频器Systic重装载数值寄存器(Load)和Systic当前数值寄存器(Val)Systic控制及状态寄存器(CTRL)原创 2024-05-09 15:38:21 · 1465 阅读 · 0 评论 -
STM32HAl库基础
Cortex-M内核含有硬件调试模块,该模块可在指令断点或数据断点处停止。内核停止时,可以查询内核的内部状态和系统的外部状态。完成查询后,可恢复程序执行。JTAG/SWD引脚F4/F7/H7系列默认全部SWJ-DP引脚为复用功能并映射到复用功能0(AF0)。原创 2024-05-05 21:13:05 · 1503 阅读 · 0 评论 -
STM32HAL库-中断篇
System configuration controller,即系统配置寄存器,用于外部中断映射配置等功能(F1为AFIO模块)SYSCFG模块的外部中断配置主要使用SYSCFG_EXTICR1~4,配置EXTI中断线0~15对应到哪个具体IO口特别注意:配置SYSCFG寄存器之前要使能SYSCFG时钟,方法如下:EXTI与IO对应关系EXTI0与Px0对应当Px0映射到EXTI0时,其他分组的Pin0就不能映射到EXTI0了可以看到EXTI0与引脚号为0的IO口对应。原创 2024-05-15 15:35:38 · 3253 阅读 · 0 评论 -
STM32HAL库开发-串口篇
串口 是 串行通信接口的简称,指的是按位发送和接收数据的接口。如RS-232/422/485等RS-232被称为标准串口。原创 2024-05-18 01:01:58 · 2331 阅读 · 0 评论 -
STM32HAL库-IWDG篇
IWDG,Independent Watch Dog 独立看门狗IWDG的本质是能产生系统复位信号的计数器IWDG的特性:递减的计数器IWDG时钟由独立的RC振荡器,可在待机和停止模式下运行。看门狗被激活后,当递减计数器计数到0x00时产生复位是指计数器计数到0之前,重载计数器的值,防止复位Reset and Clock.,RCC,复位和时钟控制器Clock Status Register,CSR,时钟状态寄存器。原创 2024-05-18 20:23:42 · 1148 阅读 · 0 评论 -
STM32HAL库-WWDG窗口看门狗
*******************************WWDG初始化*************************************/1、工作参数初始化 HAL_WWDG_Init()/*******************************WWDG中断函数初始化**************************/2、WWDG Msp初始化 HAL_WWDG_MspInit() 配置NVIC、CLOCK等。原创 2024-05-19 19:04:17 · 943 阅读 · 0 评论 -
STM32F4以太网LWIP - LAN8720
TCP/IP是一个协议簇,包含众多网络协议如TCP、IP、HTTP、FTP、MQTT、UDP、HRP、DHCP、DNS等等STM32F407自带有10/100Mbits/s数据传输速率的以太网内核(以太网网络接口卡的控制器,负责以太网中数据帧的发送和接收),这个以太网MAC内核有如下特性:1.支持外部PHY接口(以太网外部端口芯片,如LAN8720)实现10/100Mbit/s数据传输速率2.通过符合IEEE802.3的MII接口与外接的快速以太网PHY进行通信。原创 2024-05-04 14:53:27 · 3281 阅读 · 2 评论
分享