![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
文章平均质量分 73
汘荨
一只在校萌新,喜欢嵌入式软件开发,博客用来记录学习笔记。
展开
-
七校联赛题铅笔姿态及笔迹检测装置--mpu6050识别数字
前几天打完比赛,收获还是挺大的,数字识别部分基本上浪费了绝大部分时间。先将思路简单说明。原创 2024-06-04 22:58:18 · 613 阅读 · 0 评论 -
stm32标准库usart1,usrat2,usart3三个串口的配置以及printf重定向(串口输出)
我刚开始学串口时,因为要用到多个串口,自己又懒得改,总是在网上要找半天。下面将stm32的三个串口配置罗列下来,方便大家直接copy。原创 2024-06-03 21:35:15 · 487 阅读 · 0 评论 -
正点原子延时函数delay_ms延时失效的原因
今天在测试小车程序的时候使用了如下代码,,本来以为少加了个0,最后在我多次测试下来,发现在延时大约超过2s的时候就会失效。原创 2024-05-28 22:39:23 · 470 阅读 · 0 评论 -
14年电赛题--风洞实验--基于STM32与串口屏
我们使用的是位置式PID。由于误差最大是500(mm),然后PWM初值给到5455的时候小球正好被吹起来,PWM上限是7200(看定时器的自动重装载值),就可以算出Kp的大致值为(7200-5455)/500=3.49。原创 2024-04-21 22:25:56 · 1043 阅读 · 0 评论 -
基于stm32与TJC3224T124_011串口屏的PID调参器(附完整工程)
电赛在即,每次比赛调PID都是一件比较繁琐的事。每次都要在程序中改完再烧录到板子上,特别耗时。正好最近发现实验室的一块串口屏比较好玩。于是就做了这个调PID的东西。它可以,从而达到快速调PID的目的。下面我将完整工程分享给大家。原创 2024-03-26 22:29:21 · 1178 阅读 · 0 评论 -
21年电赛-送药小车—基于OpenMV的寻迹+检测路口+数字识别(多模版匹配)(附代码)
我们花费了四天时间打了一场21年的电赛改编题——智能送药小车。虽然结果不尽人意,但这是我学习32以来第一次正式的打比赛,对我来说要学习的东西,所增长的经验真的特别多(虽然基本上都是学长在出力~)下来我就把关于这次比赛的感悟和大家分享一下。原创 2024-03-18 23:47:53 · 3054 阅读 · 9 评论 -
STM32--低功耗模式详解
PDDS位用来区分停机还是待机模式。PDDS = 0,进入停机模式,PDDS = 1,进入待机模式;LPDS位用来控电压调节器。LPDS = 0,电压调节器开启,LPDS = 1,电压调节器进入低功耗;停机模式下,唤醒方式只能是外部中断,由于PVD、RTC闹钟、USB唤醒、ETH唤醒借道了外部中断,所以也可以唤醒;原创 2024-02-26 18:41:15 · 949 阅读 · 0 评论 -
STM32--EXTI外部中断
相同的Pin不能同时触发中断:比如PA0和PB0不能同时使用;NVIC的中断优先级由优先级寄存器的4位(0~15)决定,这4为可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级;抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按照中断号排队;原创 2024-02-18 16:44:04 · 728 阅读 · 0 评论 -
stm32--笔记
(5)**VBAT:**当使用电池或其他电源连接到VBAT脚上时,当VDD 断电时,可以保存备份寄存器的内容和维持RTC的功能。如果应用中没有使用外部电池,VBAT引脚应接到VDD引脚上。(3)**VSS:**S=series 表示公共连接的意思,通常指电路公共接地端电压。(2)**VDD:**D=device 表示器件的意思, 即器件内部的工作电压;(1)**VCC:**C=circuit 表示电路的意思, 即接入电路的电压。(4)**VEE:**负电压供电;场效应管的源极(S)原创 2024-02-18 16:00:55 · 652 阅读 · 0 评论 -
STM32--RTC实时时钟(详解)
BKP本质上是RAM存储器,掉电丢失;TAMPER:在引脚产生上升沿或者下降沿的时候产生侵入事件;原创 2024-02-06 00:36:06 · 1287 阅读 · 0 评论 -
Unix时间戳详解
Unix时间戳(Unix timestamp)是UNIX操作系统中的一种时间表示方式,以自1970年1月1日00:00:00(格林威治时间)以来的秒数来表示时间。它通常以整数形式存在,表示从该起始时间点到当前时间点所经过的秒数。Unix时间戳的优势在于其简单性和一致性,可以在不同的编程语言和操作系统中使用。许多编程语言提供了函数或库来将Unix时间戳转换为易读的日期和时间格式,或将日期和时间格式转换为Unix时间戳。原创 2024-02-05 00:29:37 · 1503 阅读 · 0 评论 -
STM32--SPI通信协议(3)SPI通信外设
16位数据帧:最长见的是8位数据帧,也就是一次发送8个字节,而16位数据帧就是一次发送16个字节;时钟频率:外设时钟(APB2的PCLK是72MHz,APB1的PCLK是36MHz)/ 分频系数;SPI1挂载在APB2上,其他挂载在APB1上;iis:一种数字音频传输的协议(小容量与中容量产品上不支持iis协议);原创 2024-02-04 00:31:06 · 1088 阅读 · 0 评论 -
STM32--SPI通信协议(2)W25Q64简介
1、W25Qxx中的xx是不同的数字,表示了这个芯片不同的存储容量;2、存储器分为易失性与非易失性,主要区别是存储的数据是否是掉电不丢失:易失性存储器:SRAM、DRAM;非易失性存储器:E2PROM、Flash;原创 2024-02-03 01:07:51 · 752 阅读 · 0 评论 -
STM32--USART串口(2)串口外设
可配置数据位:不需要校验就是8位,需要校验就选9位;停止位:决定了帧的间隔;STM32F103C8T6USART:USART1挂载在APB2总线上,USART2和USART3挂载在APB1总线上;原创 2024-01-30 23:37:06 · 1436 阅读 · 1 评论 -
STM32--USART串口(1)串口协议
全双工:通信双方能够同时进行双向通信;半双工:通信双方能够进行双向通信,但不能同时通信;单工:只能从一个设备到另一个设备;同步:接收方可以在时钟信号的指引下进行采样;异步:需要规定好采样频率,还要加上帧头帧尾等进行采样位置对齐;单端信号:引脚的高低电平都是相对于GND的,所以单端信号通信的双方必须要共地差分信号:靠两个差分引脚的电压差来传输信号(可提高抗干扰特性,传输速度与距离很高)原创 2024-01-30 22:45:27 · 510 阅读 · 1 评论 -
stm32平衡小车--(3)mpu6050传感器
XCL与XDA用来扩展芯片功能,比如可外接磁力计,气压计等AD0为从机地址的最低位,接低电平时iic从机地址为1101000,接高电平时为1101001(但mpu6050的AD0引脚内接了一个电阻,所以引脚悬空的时候默认弱下拉到低电平mpu6050供电范围为2.375~3.46v,属于3.3v供电设备,但其外置了一个3.3v稳压器,只要在3.3v~5v的电压都可以通过3.3v稳压器输出稳定的3.3v电压。原创 2023-12-14 14:20:26 · 1839 阅读 · 1 评论 -
IIC通信协议基础知识总结
IIC(Inter-Integrated Circuit)是一种串行通信协议,用于在电路板和芯片之间传输数据。它由Philips公司(现在是NXP公司)于1982年开发,因此也被称为Philips I2C。IIC协议使用两根信号线,一根为时钟线(SCL),另一根为数据线(SDA)。它可以连接多个设备,其中每个设备都有一个唯一的地址。IIC协议被广泛用于数字电路中的芯片间通信,如存储器芯片、传感器、扩展IO等。原创 2023-12-07 22:29:33 · 912 阅读 · 0 评论 -
STM32--SPI通信协议(1)SPI基础知识总结
SPI(Serial Peripheral Interface)是一种同步串行通信协议,用于在微控制器和外围设备之间传输数据。SPI使用四根线进行通信,即主设备和从设备之间的主时钟线(SCLK)、数据输出线(MOSI)、数据输入线(MISO)和片选线(SS)。SPI协议可以实现高速数据传输和多设备通信,并且具有简单的硬件实现和低功耗特点,常用于与外围设备(如传感器、存储器、显示屏等)的通信。原创 2024-02-02 00:10:47 · 1036 阅读 · 0 评论 -
STM32--USART串口(3)数据包
在实际的工程中肯会有同时发送多种数据的情况,比如要不停的发送x、y、z分别对应三种不同的数据。xyzxyzxyz,但接收方可能是从中间某个地方开始接收的,这就导致数据错位。所以我们就需要将数据进行分割,打包成一个一个的数据包,方便接收方进行识别。数据包的格式可以自行定义,。原创 2024-02-01 00:11:50 · 467 阅读 · 1 评论 -
STM32--DMA直接存储器存取
STM32的DMA(Direct Memory Access,直接内存访问)是一种用于数据传输的硬件机制。它允许外设通过直接访问系统内存而不需要CPU的干预,从而提高数据传输的效率。原创 2024-01-28 23:39:16 · 372 阅读 · 0 评论 -
stm32--TIM定时器(详解)
STM32定时器是一种用于测量和控制时间的硬件模块,内置在STM32微控制器中。它具有多个定时/计数通道,可以用于生成脉冲、计时、延时等应用。STM32定时器可以高精度地计算时间,可配置为不同的模式,如定时器模式、输入捕获模式和PWM输出模式等。定时器的工作频率可以通过外部时钟源或内部时钟源进行配置,具有灵活性和可靠性。定时器还可以与其他外设模块(如ADC、DAC、GPIO等)进行协作,提供更多的功能和应用。注:为什么是最大59.65s的定时?原创 2024-01-25 00:11:57 · 2318 阅读 · 2 评论 -
STM32--ADC模数转换器
STM32 的 ADC 是。它有 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以 单次、连续、扫描或间断模式 执行。ADC 的结果可以 左对齐或右对齐方式 (12位)存储在 16 位数据寄存器中。原创 2024-01-26 11:04:47 · 767 阅读 · 1 评论 -
stm32平衡小车--(1)JGB-520减速电机+tb6612(附测试代码)
那么转一圈会计数器值为30*4,如果我设置重装载值为120,那是不是电机每转一圈定时器就会溢出一次,我们再在定时器的溢出中断中加上一个计数器cnt,每次进中断,cnt的值就++,那在采样的时候计数器的值就为:cnt*重装载值+计数器的值。电机每转动一圈,他们会产生相差九十度的相同数量的脉冲,然后会有一个计数器去捕获脉冲的上升沿和下降沿,然后每隔一段时间去读取计数器的值(转动的圈数=计数器的数值/一圈产生的脉冲数),这样就能算出这一段时间转了多少圈,从而算出转速。当AIN或BIN产生电势差,电机就会转动。原创 2023-11-23 23:07:55 · 6230 阅读 · 2 评论 -
基于stm32f103c8t6与OLED实现的贪吃蛇游戏(附完整代码)
我是用的是四线IIC接口的OLED因为0.96寸OLED屏幕是128*64,将每2*2的四个OLED上的节点看做蛇的一个节点,所以定义地图大小为32*12#define MAXLENGTH 100 //蛇的最大长度//地图大小 x,y(一个坐标为4*4个像素点) 实际按4倍尺寸放大后地图大小为128*48个像素点int score;//分数//蛇吃到食物的标记//获取按键值struct {//二维数组,行坐标表示蛇节点,列表示当前节点的x,y坐标int length;//蛇的长度。原创 2023-09-27 22:28:59 · 2840 阅读 · 48 评论 -
STM32外部中断实验
本篇介绍的是使用外部按键,将B5引脚做为外部中断输入的IO口,利用外部中断来点亮STM32开发板上面的LED灯。原创 2023-09-11 22:15:51 · 589 阅读 · 0 评论 -
如何在keil中建立一个STM32F10x完整工程(保姆级教程)
整个建立过程对于初学者来说确实有点繁琐,不过我们在后来学习过程中就不必这样一步一步操作了。我们这样一步一步主要是为了了解项目的主要文件组成和.c .h文件的导入。原创 2023-09-11 22:10:57 · 2929 阅读 · 4 评论 -
STM32F103基础(寄存器)——(2)外部中断控制LED灯
使用外部按键,将B5引脚做为外部中断输入的IO口,利用外部中断来点亮STM32开发板上面的LED灯。原创 2023-06-11 16:25:19 · 1015 阅读 · 1 评论 -
STM32F103基础(寄存器)——(1)3*3矩阵键盘控制5161as数码管
本篇介绍的是基于==STM32——寄存器==版本的矩阵键盘控制==5161as数码管==显示数字的实例原创 2023-05-21 16:06:06 · 3933 阅读 · 10 评论