- 博客(38)
- 收藏
- 关注
原创 STM32学习27--SPI通信之W25Q64
命令:0x02 (写数据)向已经擦除过(值为0xFF)的Flash地址,写入1~256字节(1页)数据;
2026-09-07 22:45:02
183
原创 STM32学习25--硬件I2C
3)所以while必须加超时,防止总线卡死程序。4)GPIO必须复用开漏模式。参数说明:RegAddr寄存器地址,Data:要写入的值。
2026-08-27 21:58:57
396
原创 STM32学习24--I2C-2
1、MOU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角(欧拉角),常用于平衡车、飞行器等需要检测自身姿态的场景。2、3轴加速度计(Accelerometer):测量X、Y、Z轴的加速度;3轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度;3、16位ADC采集传感器的模拟信号,量化范围:-32768~32767;4、加速度即满量程选择:±2、±4、±8、±16;
2026-08-22 15:25:01
204
原创 STM32学习23--I2C-1
一、简介1、I2C(Inter-Integraed Circuit,集成电路间总线),飞利浦1982年推出的一种通用数据总线;同步半双工、串行、多主从总线,只用2根信号线即可挂载多个设备(一主多从、多主多从),广泛用于传感器、OLED、EEPROM、RTC、AD/DA等低速外设。2、两根核心信号线:所有I2C设备的SCL连在一起,SDA连一起1)SDA:Serial Data,数据线,双向传输数据;2)SCL:Serial Clock,时钟线,由主机产生同步时钟;SDA、SCL都是。
2026-08-16 19:48:00
219
原创 STM32学习22--DMA
1、DMA:Direct Memory Accss,直接存储器访问。数据搬运不占用CPU,由DMA控制器完成内存↔外设、内存↔内存数据搬运,无需CPU干预。2、12个独立可配置的通道:DMA1(7个通道),DMA2(5个通道);3、每个通道都支持软件触发和特定的硬件触发,一般存储器之间用软件,外设和存储器之间用硬件。4、STM32F103C8T6只有DMA1,7个通道;5、DMA属于AHB外设,时钟是RCC_AHBPeriphClockCmd,不是APB1/APB2。
2026-08-15 10:40:03
171
原创 STM32学习21--ADC模拟数字转换2
2)ADC_ScanConvMode:单通道:DISABLE;顺序固定:开启ADC上电→复位校准→等待复位完成→启动校准→等待校准结束。传感器输出电压电路:光敏、热敏、红外接收、麦克风等,可等效为N1可变电阻;1)ADC_Mode:独立ADC或双ADC同步,一般配置独立模式;5)ADC_DataAlign:数据对齐,一般写右对齐;不停循环采集:ENABLE(连续转换);6)ADC_NbrOfChannel:规则通道总个数;图二:光敏、热敏等;3)采样保持时长(充电时长);2)Rank:采集顺序序号;
2026-08-11 20:01:48
230
原创 STM32学习20--ADC模拟数字转换1
可选:1.5/7.5/13.5/28.5/41.5/55.5/71.5/239.5 ADC时钟周期。最小分辨电压V=Vref/4096。同时开启多个ADC通道,自动按顺序逐个转换,配合DMA直接存到数组,CPU无需干预,工程中最常用,多路传感器同时采集电压、电流、温度等。2)Channel,ADC通道号,ADC_Channel1_0~ADC_Channel1_17,对应引脚和内部温度、参考电压通道。2)参考电压Vref:多数单片机内部固定:Vref=3.3V,输入模拟电压不能超过3.3V,否则烧坏芯片。
2026-08-09 22:29:41
183
原创 stm32学习19--定时器之编码器
Encoder Interface编码器接口编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度。每个高级定时器和通用定时器都有1个编码器接口;两个输入引脚借用了输入捕获的通道1和通道2;
2026-08-08 22:56:42
291
原创 stm32学习18--定时器之输入捕获
IC(input caputure)输入捕获:定时器引脚检测外部电平边沿(上升沿/下降沿):当检测到指定边沿瞬间,硬件自动把当前计数器CNT的值锁存到CCRx(捕获比较寄存器)。优势:硬件自动记录边沿发生的时间戳,不用软件轮询引脚,精度很高。常见用途:1、普通输入捕获:测量方波周期、频率。2、PWMI模式:同时测量PWM周期+高电平时间+占空比。3、测量单个脉冲宽度;4、编码器测速:因为编码器本质是2路输入捕获的变种。
2026-08-03 19:55:43
206
原创 STM32学习15--定时器3输出比较(OC)
3、预装载: TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable)(CRR,动态调整占空比)和TIM_ARRPreloadConfig(TIM2,ENABLE)(ARR,动态调整周期/频率)要开启,保证在运行中动态修改CCR或ARR时,波形不会畸变或毛刺,使能预装载,CCR/ARR会延迟生效,直到当前周期结束,才会更新新的值。设PSC=7200-1,ARR=1000-1,计数频率=72M/7200=10kHz,翻转周期0.1s,一秒闪烁5次。(定时电平自动翻转)
2026-07-18 16:38:32
278
原创 STM32学习14--定时器2级联
以实际举例如下:假设让TIM1溢出一次,TIM2计数+1,也就是 TIM2用TIM1做时钟源。TIM1每次溢出产生一个更新事件(TRGO),该事件作为TIM2的时钟源驱动其计数,当TIM2计数达到目标值时,代表经过了10s。从定时器TIM2:接收TIM1的1KHz作为时钟,PSC=0(不分频,直接对TIM1的溢出计数);1、简单说:就是 一个定时器(从定时器),用另一个定时器(主定时器)的溢出信号,作为它的时钟来源。即1Hz作为TIM2的时钟。1)仅需要处理从定时器的更新中断,避免主定时器中断占用资源;
2026-07-15 21:50:58
235
原创 STM32学习12--串口2收发数据包
举例:0xFF,0x01,0xFE,0x02,0x03,0xFE,程序直接把0xFF~0xFE截断成一个包,剩下数据就错位了。格式:@+任意长度文本+\r\n,依靠@作为起始,\r\n作为结束切分字符串,但要避免文本内容里自带回车换行\r\n,否则会提前切断,数据乱序。逐个字节接收,抓到字节0xFF,开始缓存→持续存入后续字节,直到遇到0xFE,停止接收→有效数据是中间4个字节;即:同一个状态,输入不同,动作不一样。决定,和输入无关,比如:灯,只要状态是“亮”,就一直发光,不管有没有按键输入;
2026-07-11 19:51:09
187
原创 STM32学习11---串口
基于STM32标准库,主要涉及初始化、收发原理、中断收发、常用配置。STM32F103 有2个USART,其中,USART1位于APB2总线,USART2/3是APB1总线,支持同步/异步模式,常用异步串口UART模式。参考江科大视频,如有错误,欢迎指正,侵删!
2026-07-04 21:07:44
291
原创 STM32学习9---EXIT外部中断(理论)
68个可屏蔽中断通道(中断源),包含EXTI外部、TIM定时器、ADC模数转换器、USART串口、SPI通信、I2C通信、RTC实时时钟等外设。STM32的型号不同,支持的中断不同。NVIC是统一管理中断,每个中断通道有16个可编程的优先等级,并可对优先级进行分组,进而设置抢占优先级、响应优先级。NVIC就是管理中断分配优先级的。STM32的中断资源:比如第一个复位中断,当产生复位事件时,程序就会自动执行复位中断函数,也就是复位后程序开始执行的位置。
2025-01-21 16:39:54
1171
原创 STM32学习8---OLED调试工具
如下图:OLED:organic emitting diode:有机发光二极管OLED显示屏的特点:性能优异的新型显示屏,有以下特点:功耗低:因为OLED每一个像素都是一个单独的发光二极管,每一个像素都是可以自发光的,不像LCD样需要有背光,所以OLED屏幕会比较省电。响应速度快:OLED可以有更高的刷新率,总线时序快,也可以避免阻塞我们的程序。宽视角:因为OLED屏幕是自发光的,所以在任何角度看显示内容都是清晰的。而LCD的话,如果从上面或者下面斜着看这个屏幕,屏幕就会变黑,很难看清上面的内容。
2024-12-23 14:10:33
1506
原创 STM32学习7 GPIO输入--按键控制LED/光敏传感器控制蜂鸣器
1、初始化时钟;2、定义结构体,赋值结构体,GPIO_Mode可以选择八种输入输出模式;GPIO_Pin选择引脚可以用按位或的方式,同时选中多个引脚;GPIO_Speed选择输出速度,这个不是很重要,要求不高的话,直接选50MHz就行了;3、最后使用GPIO_Init函数将指定的GPIO外设初始化好。注意是指针&另外,八个读取和写入的函数,读写GPIO口主要就用这些函数。技巧:1、尽量把每个硬件的驱动函数单独提取出来,封装在.c和点h文件里,这样有利于简化主函数的逻辑。
2024-12-16 17:46:14
870
原创 STM32学习6---GPIO输入
在单片机开发程序中的第一个用途是:用一个字符串代替一个数字,便于理解,防止出错。比如在程序中1代表上拉输入,2代表下拉输入,3代表浮空输入等等,这时直接用数字来表示,不易理解,我们就可以用宏定义将数据参数映射到一个字符串上,这样就比较好理解。然后第二个用途:提取程序中经常出现的参数,便于快速修改。比如我们程序里面出现了10个GPIO_Pin_0,这个Pin_0是需要经常修改的,如果一个个修改就太不方便了,这时我们就可以用一个字符串来代替GPIO_Pin_0,然后需要修改的时候,只需要修改一下定义即可。
2024-11-15 16:47:30
922
原创 STM32学习5--GPIO输出 LED闪烁/流水灯/蜂鸣器
这个东西是一个批处理文件,它可以把工程编译产生的中间文件都删掉,我们可以把它复制到我们的创建的工程文件夹里。比如:这个工程编译产生的文件比较大,主要占空间是Listings和Objects,里面都是一些中间文件。如果想要把工程分享给别人的话,可以先双击一下这个批处理文件,这时它就会把这些中间文件都删除掉,这样整个工程文件的大小就不会那么大了,也就可以把这整个工程文件夹压缩打包分享给别人了。
2024-11-14 16:36:25
1474
原创 STM32学习4---GPIO输出(理论)
这个手册上GPIO的8种工作模式:GPIO的寄存器描述,首先是GPIO配置寄存器,每一个端口的模式由4位进行配置。16个端口就需要64位,所以这里的配置寄存器有两个,一个是端口配置低寄存器,一个是端口配置高寄存器。结构图里并没有速度这个参数,GPIO的输出速度可以限制输出引脚的最大翻转速度,为低功耗和稳定性而设计,一般设50MHz即可。输入数据寄存器,只用了低16位,对应16个引脚,高16位没有使用。接下来是端口输出数据寄存器,也就是这个寄存器。同样低16位,对应16个引脚,高16位,没有使用。
2024-11-08 15:10:38
4403
原创 STM32学习3--新建工程和LED点亮
打开配套资料并解压解压打开,就可以看到两个文件,新建工程时会用到。第三个文件project是官方提供的工程示例和模版,以后使用库函数的时候可以参考。打开Project文件夹,可以看到两个文件Utilities文件夹是STM32官方评估板的相关例程打开可以看到一个文件,评估板就是官方用STM32做的一个小电路板,用来测评STM32的,这个文件夹里面存的就是这个小电路板的测评程序。
2024-10-14 14:46:19
1387
原创 STM32学习2--STM32基础介绍
ST公司,M是Microcontroller的首字母。微控制器就是MCU(单片机)。32指的是32位的单片机,而C51是位的单片机。ARM Cortex-M内核就是stm32内部的核心部分。(可以理解为ST公司给ARM内核加了一些外设并封装,成了STM32)STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。
2024-10-12 10:39:12
2224
原创 11--定时器/计数器
STC89系列的51单片机,有T0/T1/T2共3个定时器,但基本的51系列只有T0和T1 计2个定时器。定时器的使用方法是一样的,本节 介绍T0震荡周期:通常,单片机的外部晶振引脚外接一个晶振,开发板上的是12MHz的晶振。震荡周期是指为单片机提供时钟信号的振荡源的周期,一般用T表示。振荡周期是单片机中最基本的时间单位,它决定了单片机能够完成的最小操作。周期等于频率的倒数(T=1/f)。以12MHz为例,它的震荡周期是:1/12us,(MHz对应us)。1/12us就是震荡周期。状态周期。
2024-09-29 14:28:27
1268
原创 2-独立按键控制LED亮灭
参考普中科技开发板和江科大视频1)先了解按键的结构它相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。不管按键有没有按下,左边两个引脚都通过一个金属片连接起来,然后再向中间伸出两个接触点,右边两个引脚也是通过一个金属片连接起来,并向中间伸出一个接触点,如上图红色标识。那么金属弹片就在中间,如果松手时,它就凸起来,不接触,如果按压,弹片会被压扁,就开始接触,这三个接触点就会被连接。如下图:2)原理图。
2024-08-27 20:01:05
355
原创 1-单片机入门之LED流水灯
以普中开发板为例并参考B站江科大视频8个LED的阳极,串联一个排阻(470Ω),起限流作用,然后连接电源VCC,LED的阴极连接单片机的引脚P2端口,当引脚输出低电平(为0),LED点亮。单片机采用TTL电平,高电平5V,低电平0V。
2024-08-26 22:53:22
503
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅