STM32
姜浩鑫
相信在未来的日子里所有学过的东西都会汇聚在一起,最终构成我的知识版图
展开
-
89C52单片机定时器精确延时
设1ms经过x个机器周期,那么x=1*10^-3s/(12/11.0592*10^6hz)=921.6。这样TF0==1(溢出),过了920个机器周期,打一下示波器看看输出波形,定时器周期在1.02ms附近。那么需要(255-TL0)+255*(255-TH0)=921(这个公式很容易就想明白)解:89C52采用的是12分频,机器周期为12/11.0592=1.085us。也就是低八位255,高八位255(255*255=65535)解得TH0=0XFC,TL0=0X63。那么封装一个1s的定时器呢?原创 2022-10-28 18:28:54 · 3596 阅读 · 0 评论 -
TX-1C学习记录——矩阵键盘检测
【代码】TX-1C学习记录——矩阵键盘检测。原创 2022-10-01 17:01:51 · 327 阅读 · 0 评论 -
TX-1C学习记录-动态数码管
多为一体的数码管,内部的公共端是独立的,而负责显示什么数字的断线是全部连在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连在一起的段线可以能控制这位数码管能亮出什么数字。一个字节是8位,所以u8是1字节,u16是2字节,u32是4字节。电路中采用两片74HC573来驱动两个4位8段数码管,一片用来传输数码管的段码,另一片用来控制数码管的位选。74hc573-1是控制段选的,74hc573-2是控制位选的,P2.6和P2.7端口是锁存使能位,置。锁存器的工作原理:当OE为高时,输出为高阻态,原创 2022-09-25 20:58:17 · 824 阅读 · 2 评论 -
TX-1C 学习记录-59秒计数器
【代码】TX-1C 学习记录-59秒计数器。原创 2022-09-25 20:57:41 · 149 阅读 · 0 评论 -
TX-1C单片机学习记录-键盘流水灯
自学记录原创 2022-09-24 21:55:11 · 357 阅读 · 0 评论 -
STM32上电自复位电路
VCC通过电阻R为电容C充电,刚开始电容C上面没有电荷积累,电容两端没有电压,相当于短路,此时充电电流最大;随着电荷在电容上积累,电容两端的电压逐渐升高,充电电流减小,充电的速率逐渐变缓;直到电容两端的电压等于VCC,此时电流为0,电阻R上没有压降。如果电阻R取10K,电容C取0.1uF,那么t=1.1ms(计算为1.1*10*1000*0.1*10^-6),在3~5ms的时间电容充电完毕。STM32的复位引脚低电平有效。原创 2022-12-31 20:02:02 · 2787 阅读 · 2 评论 -
OLED重新上电不显示或者显示不正常
实际上是由于电压不稳造成的,要么解决电源的问题,要么在oled_init前面加几百ms延时。原创 2023-01-29 19:12:16 · 5031 阅读 · 1 评论 -
DS12B20
【代码】DS12B20。原创 2023-05-06 17:49:32 · 257 阅读 · 0 评论 -
stm32芯片可以下载,程序也偶尔能跑,但就是仿真不了
stm32芯片可以下载,程序也偶尔能跑,但就是仿真不了,解决只需要,需要detect 单片机boot引脚,查看该脚电压状况以及是否跟其他IO连锡等情况。原创 2023-02-27 10:58:23 · 764 阅读 · 0 评论 -
core is held in reset 解决方法
检查NRST引脚复位阻容是否焊接反了,nrst引脚是不是一直低电压。原创 2023-02-13 00:08:34 · 1447 阅读 · 0 评论 -
重新定义printf函数
在stm32f4xx_hal.c中加入下列代码。原创 2023-01-14 00:15:28 · 617 阅读 · 0 评论 -
ST-Link的红灯一直异常闪烁
解决办法,将HUB拔掉,直连PC机,排查发现是延长线只有充电,没有数据传输DP,DN。ST-Link的红色指示灯一直异常闪烁,并且keil识别不到芯片。原创 2023-01-13 14:52:02 · 4769 阅读 · 0 评论 -
舵机的控制
舵机内部有一个基准电路,产生周期为20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而生产电机的转动信号。由此可见,舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比如说机器人的关节、飞机的舵面等。给它提供一定的脉宽,它的输出轴就会保持一定对应角度上,无论外界转矩怎么改变(只要目标不变就维持在这个角度类似PID自动控制算法),直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应位置上如所求。原创 2023-01-06 21:50:27 · 1930 阅读 · 0 评论 -
蓝牙遥控小车基础篇
【代码】蓝牙遥控小车基础篇。原创 2022-12-14 22:49:45 · 559 阅读 · 0 评论 -
HC-05蓝牙模块AT指令 ERROR问题
AT模式指令识别貌似有些问题,但不知道什么原因导致的,返回正常值后,一切通信正常。EN为3.3v,可以确保模块处于AT模式,可以解决ERROR错误。查了一些资料,觉得下面两个最靠谱。2.需要3.3v接EN引脚。等到故障再次发生,尝试。,数据收发一切正常。原创 2022-12-11 15:54:33 · 2576 阅读 · 0 评论 -
蓝牙模块HC-05使用指南
HC-05蓝牙模块是一种基于蓝牙协议的简单无线通信设备。该模块基于BC417单芯片蓝牙IC,符合蓝牙v2.0标准,支持UART和USB接口。具有两种工作模式:命令响应工作模式和自动连接工作模式。当模块处于命令响应工作模式(或者AT模式)时能才能执行 AT 命令,用户可向模块发送各种 AT指令,为模块设定控制参数或发布控制命令。(AT指令就是我们PC与一些终端设备(例如蓝牙,WiFi模块)之间进行通信的,配置这些终端设备参数的一套指令。原创 2022-12-11 20:48:25 · 47719 阅读 · 2 评论 -
定时器PWM的一些笔记
修改特定的定时器通道的比较寄存器的值(占空比)。开启定时器通道3输出PWM方波。原创 2022-12-09 22:34:22 · 1348 阅读 · 0 评论 -
keil软件打空格时出来的全部都是点,怎么解决
keil设置问题,edit配置里面把View white space(查看空格)勾去掉就可以了原创 2022-12-08 12:54:46 · 1193 阅读 · 0 评论 -
探究L298N模块烧毁的原因
L298N电机驱动版主要由两个核心组件构成:原创 2022-12-08 11:48:34 · 3576 阅读 · 0 评论 -
STM32常用数据类型 u8、u16、u32
个人学习笔记 不做交流。原创 2022-10-29 16:12:10 · 2641 阅读 · 0 评论 -
STM32串行线时序测量
由于STM32时钟教学时钟配置72兆,按照计算纳秒延时应该是可以的,可是通过实际测试,可能由于单条指令也会时间延时,所以延时达不到纳秒,所以只能通过单条指令循环的方法来实现纳秒延时。也就是差不多上升沿2/3以后 到下降沿1/3以前 看波形测出高电平持续时间应该在330ns附近。根据STM32F103C8T6的数据手册,STM32CUBEMX时钟树配置。简单用示波器测一下延时。,各种情况下高低电平。原创 2022-10-29 20:06:34 · 554 阅读 · 0 评论 -
利用stm32f103c8t6实现对WS2812的控制(从硬件出发)
调试所用开发板开源平台链接(含原理图,PCB)PB8 为串行数据线(连WS2812)PB9 为三极管基极(连蜂鸣器)PC13为调试指示灯(低电平有效)GPIO设置(基于开头所述 电路图)时钟树配置(系统时钟72mhz)数据传输时间(TH+TL=1.25μs±600ns)T0H 0码高电平时间 0.35μs ± 150nsT0L 0码低电平时间 0.8μs ± 150nsT1H 1码高电平时间 0.7μs ± 150nsT1L 1码低电平时间 0.6μs ± 150ns。原创 2022-11-01 23:18:46 · 4485 阅读 · 0 评论 -
计算 定时器arr和psc
【代码】计算 定时器arr和psc。原创 2022-11-08 19:43:00 · 3264 阅读 · 0 评论 -
GPIO 有3种状态, 上拉,下拉,不拉
推挽电路使用两个参数相同的三极管或MOSFET,以推挽方式存在于电路中。电路工作时,两只对称的开关管每次只有一个导通,所以。灌电流或者拉电流的器件的电路。它常常使用一对参数相同的功率三极管或MOSFET管,以推挽方式存在于电路中。时引脚既不输出高电平,也不输出低电平,为高阻态。推拉式输出级既提高电路的负载能力,又提高开关速度。,则在输出高电平时电压会拉到上拉电阻的电源电压。)是一种使用一对选择性地从相连。时引脚接地,控制输出。原创 2022-11-16 22:49:25 · 8270 阅读 · 0 评论 -
PN532开发指南(uart)
NFC(Near Field Communication)近场通信,是一种短距高频的无线电技术,在13.56MHz频率运行于20厘米距离内。其传输速度有106Kbit/秒、212Kbit/秒或者424Kbit/秒三种。目前近场通信已通过成为ISO/IEC IS 18092国际标准、ECMA-340标准与ETSI TS 102 190标准。原创 2022-11-24 15:44:24 · 6811 阅读 · 5 评论 -
HAL_Delay()函数无法用于中断函数
在stm32f4xx_it.c中,可以找到函数EXTI0_IRQHandler,它通过调用函数HAL_GPIO_EXTI_IRQHandler对中断类型进行判断,并对涉及中断的寄存器进行处理,在处理完成后,它将调用中断回调函数HAL_GPIO_EXTI_Callback,在中断回调函数中编写在此次中断中需要执行的功能。在stm32中,每一个GPIO都可以作为外部中断的触发源,外部中断一共有16条线,对应着GPIO的0-15引脚,每一条外部中断都可以与任意一组的对应引脚相连,但不能重复使用。原创 2022-11-16 18:27:45 · 2493 阅读 · 0 评论 -
关于STM32利用TIM+PWM+DMA控制WS2812
脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但宽度不一致的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。通过数据手册我们可以看到TIM2,TIM3,TIM4(通用定时器)挂载在APB2总线上,每个通用定时器都有独立的4个通道可以用来作为:输入捕获、输出比较、PWM输出、单脉冲模式输出等。引入新的方式:直接修改CCRx寄存器的值。原创 2022-11-15 11:56:01 · 7754 阅读 · 1 评论 -
ITM调试
ITM,(英文:Instrumentation Trace Macrocell,指令跟踪宏单元),是一种针对MCU进行跟踪调试的新方法,与打断点(Breakpoint)不同,ITM方法不需要暂停程序运行,可以在程序全速运行的过程中实时输出变量的数值以便观察,即Trace功能。ITM,在Cortex-M3,M4,M7上都支持,在代码调试过程中,他与ST-LINK(或其他debugger设备)结合,可以实时查看MCU中变量的数值(能显示时间戳、记录中断的进出等)原创 2022-11-14 00:11:31 · 520 阅读 · 0 评论 -
STM32CUBEMX出现重影BUG
今天使用STM32CUBEMX,发现有多个窗口重影,重启仍未解决问题。于是把 首选图形处理器切换到自动选择,BUG消失。遂猜测显卡显示问题。原创 2022-11-07 23:04:22 · 3142 阅读 · 12 评论 -
STM32串口详解
指未及时取走数据导致溢出错误而丢失数据,通常是发生在大量数据、以查询方式接收数据的情况下。使用UART中断接收数据相比查询接收数据的方式更常见,中断方式比查询方式响应更及时,但不合理处理同样也会存在数据丢失的情况。HAL库已经有几年了,但还是有很多工程师都使用标准外设库,这时如果自己封装接口不当,就会存在发送最后一字节数据丢失的问题。但发送非空不代表发送完成,虽然在某些场合更高效,但某些场合就会导致数据丢失。UART发送丢失数据很多工程师都遇到过,通常情况下是传输未完成的原因。1、串口发送/接收函数。原创 2022-11-24 15:49:16 · 6736 阅读 · 0 评论