STM32学习笔记
文章平均质量分 80
投身信息技术,寻找人生志趣
霁风AI
通领时代,信系未来
展开
-
STM32F103 HC-SR04超声波测距
STM32F103 HC-SR04超声波测距原创 2023-03-02 16:24:37 · 1311 阅读 · 0 评论 -
关于嵌入开发过程中的字节对齐问题
前言:为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。1. 简述计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,以 2、4、或 8 的倍数的字节块来读写内存,这样就会对基本数据类型的合法地址作出一些限制,...原创 2020-04-05 14:43:56 · 1325 阅读 · 1 评论 -
C语言再学习24——__attribute__ (at())地址定位
前言:为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。参考:C语言中__attribute__ ((at())绝对定位的应用...原创 2020-02-26 22:55:36 · 15588 阅读 · 5 评论 -
MDK的编译过程及文件类型全解——(四)
前言:为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。本文转载自:第48章 MDK的编译过程及文件类型全解—零死角玩转STM32-F429系列1. sct分散加载文件的格式与应用1.1 sct分散加载文件简介当工程按默认配置构建时,MDK 会根据我们选择的芯片型号,获知芯片的内部 FLASH 及内部 SRAM 存储...转载 2019-12-01 11:32:05 · 1925 阅读 · 0 评论 -
MDK的编译过程及文件类型全解——(三)
前言:为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。本文转载自:第48章 MDK的编译过程及文件类型全解—零死角玩转STM32-F429系列1. Listing目录下的文件在 Listing 目录下包含了 .map 及 .lst 文件,它们都是文本格式的,可使用 Windows 的记事本软件打开。其中 lst 文件...转载 2019-11-23 23:07:36 · 896 阅读 · 0 评论 -
MDK的编译过程及文件类型全解——(二)
前言:为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。本文转载自:第48章 MDK的编译过程及文件类型全解—零死角玩转STM32-F429系列1. MDK 相关文件1.1 uvprojx 文件uvprojx 文件就是我们平时双击打开的工程文件,它记录了整个工程的结构,如芯片类型、工程包含了哪些源文件等内容,见下图...转载 2019-11-16 18:01:11 · 3522 阅读 · 0 评论 -
MDK的编译过程及文件类型全解——(一)
前言:为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。本文转载自:第48章 MDK的编译过程及文件类型全解—零死角玩转STM32-F429系列1. 简介本章参考资料:MDK 的帮助手册《ARM Development Tools》,点击 MDK 界面的 “help->uVision Help” 菜单可打开该文件...转载 2019-11-12 23:24:24 · 1471 阅读 · 1 评论 -
STM32学习笔记一一触摸屏
前言:为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。1. 简介1.1 电阻式触摸屏电阻式触摸屏利用压力感应进行触点检测控制,需要直接应力接触, 通过检测电阻来定位触摸位置 。1.1.1 电阻式触摸屏的原理电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作...原创 2019-07-14 23:04:59 · 23119 阅读 · 3 评论 -
STM32学习笔记一一RTC实时时钟
前言:为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。1. 简述STM32 的实时时钟(RTC)是一个独立的定时器。 STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC 模块和时钟配置系统 (RCC_BDCR 寄存器)是在...原创 2019-06-16 00:03:34 · 15623 阅读 · 1 评论 -
再学 SPI ——(一)SPI片选信号
1. 简述前面也就 SPI 的通信进行过基础的学习,针对的是标准 4 线的 SPI ,近期因为芯片资源有限,不得不使用一根片选 CS 去控制两个 SPI 从设备,在这个过程中,也重新对 SPI 的通信细节有了进一步的了解与认识,还是觉得有必要记录下来,以供查询和学习,也是对 SPI 通信协议的进一步理解。几篇以前的博客STM32硬件SPI驱动0.96寸的OLED51 软件模拟SPI驱动O...原创 2019-04-12 17:16:00 · 66257 阅读 · 14 评论 -
STM32学习笔记一一串口 IAP
1. 简述IAP(In-Application-Programming):应用编程,是应用在Flash程序存储器的一种编程模式,它可以在应用程序正常运行的情况下,通过调用特定的 IAP 程序对另外一段程序 Flash(User Flash) 空间进行读/写操作,甚至可以控制对某段、某页甚至某个字节的读/写操作。主要用于数据存储和固件升级。对于 IAP 应用,通常会有两个程序,第一个程序 Boot...原创 2018-11-06 23:22:22 · 3780 阅读 · 1 评论 -
STM32学习笔记一一红外遥控
1. 简述红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,低功耗,低成本。红外遥控的编码方式目前广泛使用的是: PWM (脉冲宽度调制)的 NEC 协议和 Philips PPM(脉冲位置调制) 的 RC-5 协议的。1.1 NEC 协议定义NEC 码的位定义: 一个脉冲对应 560us 的连续载波,一个逻辑 1 传输需要2.25ms(560us 脉冲+1680us 低...原创 2018-11-24 16:54:37 · 2904 阅读 · 0 评论 -
STM32学习笔记一一待机唤醒
1. 简述1.1 低功耗模式:在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如:等待某个外部事件时,常见的按键唤醒。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。1.2 STM32F10X系列的低功耗模式STM32F10xxx有三种低功耗模式:–模式––特点—睡眠模式...原创 2018-11-18 22:37:37 · 4967 阅读 · 1 评论 -
STM32学习笔记一一FLASH 模拟 EEPROM
1. 简述STM32 本身没有自带 EEPROM,但是 STM32 具有在应用编程(IAP:In Application Programming)功能,可以把它的 FLASH 当成 EEPROM 来使用。不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了1024K 字节。MiniSTM32 开发板选择的 STM32F103RCT6 的 FLASH ...原创 2018-11-03 00:31:50 · 12944 阅读 · 0 评论 -
STM32学习笔记一一HEX文件和BIN文件格式
1. 引言今天看串口的 IAP ,平时我们通过 JTAG 等工具下载的都是 HEX 文件,都没有思考一下 HEX 的文件组成。而串口 IAP 下载的是 BIN 文件,刚好在这里区分学习一下。2. 简述...原创 2019-06-14 23:37:30 · 17899 阅读 · 1 评论 -
STM32学习笔记——PWM基础知识与720电机驱动
1. 定义脉冲宽度调制:是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。(百度百科)它是一种对模拟信号电平进行数字编码的方法,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。**SPWM波形:**脉冲宽度按正弦规律变化而和正弦波等效的 PWM 波形。把正弦半波波形分成N等份,就可把正弦半波看成由N...原创 2018-10-09 22:07:01 · 6041 阅读 · 1 评论 -
STM32程序移植技巧总结
1. 工程更换不同的STM32芯片eg:stm32f103rct6 ---->stm32f103c8t6:1.1. 修改芯片点击魔术棒,在出来的菜单栏里,Device 选项重新选择芯片1.2. 修改启动文件此处举例是 RCT6 修改为 C8T6,因为 flash 容量大小不一样,所以需要对应修改启动文件,如果是 flash 大小相同,此步骤不需要。此处由:startup_stm3...原创 2018-10-13 23:23:23 · 28866 阅读 · 7 评论 -
STM32驱动NRF24L01
1. 简介NRF24L01是 nordic 的无线通信芯片,它具有以下特点:1) 2.4G 全球开放的 ISM 频段(2.400 - 2.4835GHz),免许可证使用;2)最高工作速率 2Mbps,高校的 GFSK 调制,抗干扰能力强;3) 125 个可选的频道,满足多点通信和调频通信的需要;4)内置 CRC 检错和点对多点的通信地址控制;5)低工作电压(1.9~3.6V),待机模式...原创 2018-10-06 12:55:48 · 20395 阅读 · 11 评论 -
STM32驱动MPU6050(一)——基础认识
1.简介原创 2018-09-25 22:03:17 · 7358 阅读 · 2 评论 -
STM32驱动MPU6050(二)——软件实现
软件实现将从下面三个部分来介绍:IIC通信;MPU6050数据读取;数据融合。1. IIC通信为了移植的方便,这里的 IIC 采用软件模拟的方式实现。关于 IIC 的基础知识介绍,可参考IIC专题(一)——基础知识准备。下面以程序的实现过程,梳理一下 IIC 的通信时序。注:这里就采用正点原子的 mpu6050 的学习教程进行学习。1.1 SDA 和SCL初始化//初始化IICvoi...原创 2018-09-26 21:57:31 · 23171 阅读 · 9 评论 -
STM32学习笔记一一SysTick
1.简介SysTick 定时器被捆绑在 NVIC 中,用于产生 SysTick 异常(异常号:15)。在以前,操作系统和有所有使用了时基的系统,都必须要一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。滴答中断对操作系统尤其重要。例如,操作系统可以为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时...原创 2018-09-02 17:52:39 · 730 阅读 · 0 评论 -
STM32驱动WS2812D全彩LED
1.简介一个集控制电路与发光电路于一体的智能外控 LED 光源。 其外型与一个 SMD5050 侧发光 LED 灯珠相同, 每个元件即为一个像素点。 像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路, 电源稳压电路, 内置恒流电路, 高精度 RC 振荡器, 输出驱动采用 PWM 技术, 有效保证了像素点内光的颜色高一致性。● IC控制电路与LED点光源共用一个电源。● 控制电路...原创 2018-09-08 16:34:32 · 48404 阅读 · 32 评论 -
STM32学习笔记一一USART
1.串口的基本概念通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置原创 2017-05-20 17:07:24 · 3648 阅读 · 0 评论 -
STM32学习笔记一一GPIO
1. GPIO工作方式STM32 每个 IO 口可以自由编程,但 IO 口寄存器必须要按 32 位字被访问。 本文主要是库函数实现的笔记。相关图片来自正点原子教程。(1) 4种输入模式:输入浮空 输入上拉 输入下拉 模拟输入a.输入浮空CPU可以通过输入数据寄存器读出I/O口的高低电平,工作电路如图。b.上拉下拉输入:添加了上拉、下拉电阻后,CPU再读电平c.模拟输入输入量为模拟量,不再是电平,输入原创 2017-05-21 17:25:05 · 2886 阅读 · 0 评论 -
STM32学习笔记一一外部中断
1.STM32 外部中断简介STM32 的每个 IO 都可以作为外部中断的中断输入口。 STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。代码主要分布在固件库的 stm32f10x_exti.h 和 stm32f10x_exti.c 文件。STM32F103的 19 个外部中断为:线 0~15:对应外部 IO 口的输入中断。原创 2017-05-22 15:26:30 · 6086 阅读 · 2 评论 -
STM32学习笔记一一时钟系统
一、系统架构:二、时钟树:STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体原创 2017-05-22 16:51:56 · 1008 阅读 · 0 评论 -
STM32学习笔记一一独立看门狗
1.看门狗的作用单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这样的情况的发生。如果系统出问题,没有给看门狗喂狗,看门狗就由于超时将CPU复位。2.STM32 的独立看门狗STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部 RC 时钟,所以并不是准确的 40Khz,而是在 30~原创 2017-05-24 16:47:15 · 1023 阅读 · 0 评论 -
STM32学习笔记一一窗口看门狗
1.窗口看门狗( WWDG):通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。2.窗口看门狗工作示意图:T[6:0]就是 WWDG_CR 的低七位, W[6:0]即是 WWDG->CFR 的低七位。T[6:0] 就是窗口看门狗的计数器,而 W[6:0]则是窗口看门狗的上窗口,下窗口值是固定的( 0X40)。当窗口看门狗的计数器在上窗口值之外被刷新,或者原创 2017-07-03 22:01:50 · 1286 阅读 · 1 评论 -
STM32学习笔记一一定时器中断
1.STM32 通用定时器简介STM32 的通用定时器是一个通过可编程预分频器( PSC)驱动的 16 位自动装载计数器( CNT)构成。使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。 STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。2.STM32 的通用定时器功能通用定时器有TIMx (TIM2、 TIM3、原创 2017-07-08 10:39:29 · 24791 阅读 · 4 评论 -
STM32学习笔记一一PWM 输出
1.PWM 简介脉冲宽度调制(PWM),是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。即对脉冲宽度的控制。STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输原创 2017-07-09 23:01:15 · 70700 阅读 · 12 评论 -
STM32学习笔记一一TFTLCD 显示
1.TFTLCD 简介TFT-LCD 即薄膜晶体管液晶显示器。TFT-LCD与无源 TN-LCD、 STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管( TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。 TFT-LCD 也被叫做真彩液晶显示器。ALIENTEK TFTLCD 模块采用 16 位的并方式与外部连接原创 2017-07-29 14:27:12 · 78380 阅读 · 15 评论 -
STM32学习笔记一一ADC
1.STM32 ADC 简介STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC),这些 ADC 可以独立使用,也可以使用双重模式(提高采样率)。 STM32 的 ADC 是 12 位逐次逼近型的模拟数字转换器。它有 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对原创 2017-08-07 22:49:54 · 16568 阅读 · 0 评论 -
I2C专题(二)—— STM32驱动AT24C02
1.概述MiniSTM32 开发板板载的 EEPROM 芯片型号为 24C02。该芯片的总容量是 256 个字节,该芯片通过 IIC 总线与外部连接。这里直接采用原子板上的 AT24C02 ,主要是软件编程方面的学习。2.硬件连接A2、A1、A0 三个引脚直接接地。供电: (VCC = 2.7V to 5.5V)器件地址设置:对于AT24C02:Addr—>0xA0(写)/ 0xA1(读)。单字节原创 2017-08-19 14:23:56 · 2162 阅读 · 0 评论 -
SPI专题(二)——STM32驱动FLASH(W25Q64)
1.硬件连接W25Q64 将 8M 的容量分为 128 个块(Block),每个块大小为 64K 字节,每个块又分为 16个扇区(Sector),每个扇区 4K 个字节。 W25Q64 的最少擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。操作需要给 W25Q64 开辟一个至少 4K 的缓存区,对 SRAM 要求比较高,要求芯片必须有 4K 以上 SRAM 才能很好的操作。W25原创 2017-08-31 22:18:02 · 36907 阅读 · 4 评论 -
STM32中晶振的原理与作用
转载地址:STM32中晶振的原理与作用晶振在电气上可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率为串联谐振,较高的频率为并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦转载 2017-10-30 14:55:56 · 30403 阅读 · 4 评论 -
STM32三种启动模式
所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。STM32上电或者复位后,代码区始终从0x00000000开始,三种启动模式其实就是将各自存储空间的地址映射到0x00000000中。(1)从Flash启动,将主Flash地址0x08000000映射到0x0000000原创 2017-11-30 17:23:06 · 33820 阅读 · 4 评论 -
STM32 硬件 SPI 驱动 0.96 寸 的 OLED
1.OLED相关参见—->51 软件模拟SPI驱动OLED2.硬件SPI参见—->SPI专题(二)——STM32驱动FLASH(W25Q64)3.驱动程序驱动程序参照51单片机进行移植,只不过模拟的SPI换成STM32硬件SPI,不用再写时序部分的代码。对于STM32的硬件SPI,我们在驱动FLASH中已有介绍,这里就不再做介绍。OLED引脚部分定义:#ifndef __OLED_H#define原创 2017-11-30 22:21:46 · 21983 阅读 · 16 评论 -
STM32学习笔记一一输入捕获
1.概述输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。 STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是原创 2018-01-25 21:34:33 · 51023 阅读 · 17 评论 -
STM32学习笔记一一DMA传输
1.简介DMA:全称为: Direct Memory Access,即直接存储器访问。 DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路, 能使 CPU 的效率大为提高。STM32 最多有 2 个 DMA 控制器(DMA2 仅存在大容量产品中), DMA1 有 7 个通道。 DMA2 ...原创 2018-03-26 23:57:47 · 14293 阅读 · 4 评论 -
STM32 驱动温湿度传感器 HTU21D
1.简介法国Humirel公司新一代HTU21D温度和湿度传感器在尺寸与智能方面建立了新的标准:它嵌入了适于回流焊的双列扁平无引脚DFN 封装, 底面3x3mm ,高度1.1mm。传感器输出经过标定的数字信号,标准 I2C 格式。HTU21D温度和湿度传感器为OEM应用提供一个准确可靠的温湿度测量数据。通过一个微控 制器的接口和模块连接达到温度和湿度数字输出。HTU21D 的分辨率可...原创 2018-04-21 23:50:12 · 19141 阅读 · 15 评论