![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
stm32
文章平均质量分 64
odk
哈哈⊙ω⊙
像我这样平凡的人
展开
-
stm32--CAN
一.CAN是什么?CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一,是一种多主方式的串行通讯总线。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的 C原创 2021-05-26 19:42:51 · 42296 阅读 · 1 评论 -
基于STM32F103的智能门禁系统
本人大二软工菜鸟一枚,大神不喜勿喷点这里功能演示GPIO、中断、RTC、UART、IIC、SPImain.c6.完整源码下载链接:https://pan.baidu.com/s/173JPHbgey1KizKu0NXReLQ提取码:hhhh代码还有许多缺陷,大家自行修正原创 2022-07-09 03:19:06 · 3546 阅读 · 36 评论 -
基于stm32f103循迹避障遥控车
参考博文:上篇中篇下篇原创 2022-04-12 23:27:50 · 184 阅读 · 0 评论 -
语音模块 STC11L08XE代码功能简介
硬件模块化的开发笔记-语音模块 STC11L08XEvoid ExtInt0Handler(void) interrupt 0 中断处理函数当LD3320识别成功后,会引发IO口中断nAsrRes = LD_GetResult(); /获取结果/User_handle(nAsrRes);//用户执行函数mainLed_test(); 开机闪灯3次MCU_init(); 单片机本身初始化,开启中断LD_Reset(); ld3320初始化UartIni(); /串口初始化/while(1原创 2021-04-04 17:59:15 · 2062 阅读 · 0 评论 -
STM32F103使用DHT11采集温湿度通过软件I2C驱动OLED显示
一.温湿度传感器介绍1.主要参数供电电压:3.3 - 5.5V直流电输出为单总线数字信号温度测量范围0-50度(精度正负2度,分辨率1度)湿度测量范围为20-90%RH(精度为正负5%,分辨率1%)2.硬件连接模块的VCC 接单片机的5V模块的GND 接单片机的GND模块的DAT 接单片机任意引脚vcc和gnd之间可以加一个电容,用于去耦滤波3.温湿度采集原理采用单总线双向串行通信协议,每次采集都要由单片机发起开始信号,然后DHT11会原创 2021-07-26 09:31:23 · 3862 阅读 · 10 评论 -
fontstr.h头文件
fontstr.h头文件#ifndef __OLEDFONT_H#define __OLEDFONT_H //³£ÓÃASCII±í//Æ«ÒÆÁ¿32//ASCII×Ö·û¼¯//Æ«ÒÆÁ¿32//´óС:12*6const unsigned char BMP[] ={ 0X22,0X01,0X80,0X00,0X40,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0原创 2021-07-26 09:27:24 · 871 阅读 · 0 评论 -
stm32---定时器中断实现步骤
定时器中断实现步骤1.使能定时器时钟。RCC_APB1PeriphClockCmd();2.初始化定时器,配置ARR,PSC。TIM_TimeBaseInit();3.开启定时器中断,配置NVIC。void TIM_ITConfig();NVIC_Init();4.使能定时器。TIM_Cmd();5.编写中断服务函数。TIMx_IRQHandler();状态标志位获取和清除TStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM原创 2021-05-16 00:23:35 · 1474 阅读 · 1 评论 -
stm32---硬件I2C
I2C:两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。IIC是半双工通信方式。多主机I2C总线系统结构I2C协议空闲状态开始信号停止信号应答信号数据的有效性数据传输1)空闲状态I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。2)起始信号与停止信号起始信号:当SCL为原创 2021-05-20 23:27:09 · 8754 阅读 · 0 评论 -
stm32---Systick定时器
Systick定时器是什么?Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。用处:Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做UCOS心跳时钟。特点:Systick定时器就是系统滴答定时器,一个24 位的倒计数定时器,计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在Sy原创 2021-05-14 23:41:52 · 642 阅读 · 0 评论 -
stm32---端口复用和重映射
什么是端口复用?STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。简单来说,一个引脚通过不同配置,可以当做很多其他外设的功能引脚来使用(吃饭要拿筷子,洗澡要拿毛巾,一个道理)例子:例如串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。端口复用配置过程-以PA9,PA10配置为串口1为例原创 2021-05-15 00:34:12 · 2800 阅读 · 0 评论 -
stm32---NVIC中断优先级管理
芯片功能强,难免中断多,那么这么多中断,它们的执行顺序是怎样的,是怎样管理的呢?首先,对于每个中断而言都有抢占优先级或响应优先级,或两者都有中断管理方法:首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。分组配置是在寄存器SCB->AIRCR中配置:抢占优先级 & 响应优先级区别:我们这里选分组2高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。(0>3)抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断原创 2021-05-15 00:52:40 · 1677 阅读 · 0 评论 -
stm32---外部中断
STM32的每个IO都可以作为外部中断输入。STM32的中断控制器支持19个外部中断/事件请求:线0~15:对应外部IO口的输入中断。线16:连接到PVD输出。线17:连接到RTC闹钟事件。线18:连接到USB唤醒事件。每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发)以及使能,触发/屏蔽,专用的状态位。从上面可以看出,STM32供IO使用的中断线只有16个,但是STM32F10x系列的IO口多达上百个,STM32F103ZET6(112),STM32F103RCT6(51)原创 2021-05-15 12:38:44 · 1775 阅读 · 0 评论 -
stm32---串口
常见的串行通信接口:UART异步通信方式特点:全双工异步通信。分数波特率发生器系统,提供精确的波特率。-发送和接受共用的可编程波特率,最高可达4.5Mbits/s可编程的数据字长度(8位或者9位);可配置的停止位(支持1或者2位停止位);可配置的使用DMA多缓冲器通信。单独的发送器和接收器使能位。检测标志:① 接受缓冲器 ②发送缓冲器空 ③传输结束标志多个带标志的中断源。触发中断。其他:校验控制,四个错误检测标志。串口通信过程STM32串口异步通信需要定义的参数:起始位数原创 2021-05-15 12:50:46 · 760 阅读 · 0 评论 -
stm32---定时器基本原理
三种STM32定时器区别:通用定时器功能特点描述STM3 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括:位于低速的APB1总线上(APB1)16 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数 为 1~65535 之间的任意数值。4 个独立通道(TIMx_CH1~4),这些通道可以用来作为:输入捕获输出比较PWM 生成(边缘或中间对原创 2021-05-16 00:23:23 · 1438 阅读 · 0 评论 -
stm32---定时器输入捕获
STM32 输入捕获工作过程(通道1为例)一句话总结工作过程:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。流程步骤:步骤1:设置输入捕获滤波器(以可编程的频率采集多少次有效电平,若每次都为有效电平,则说明时是一次有效触发,就会触发捕获)步骤2:设置输入捕获极性(指定上升沿捕获还是下降沿捕获)步骤3:设置输入捕获映射通道(指定哪个通道,1~4)步骤4:原创 2021-05-16 00:23:28 · 762 阅读 · 0 评论 -
stm32---PWM输出
STM32 PWM工作过程(通道1为例):改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值以及定时器的频率,就可以改变 PWM 输出的频率(即周期)PWM模式1 & PWM模式2有效电平根据设置输出极性输出高低电平...原创 2021-05-16 00:23:40 · 1259 阅读 · 0 评论 -
stm32---RTC实时时钟
RTC (Real Time Clock):实时时钟RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位或从待机模式唤醒后RTC的设置和时间维持不变。但是在系统复位后,会自动禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外写操作。所以在要设置时间之前, 先要取消备份区域(BKP)写保护。RTC特征RTC工作原理框图原创 2021-05-16 00:23:52 · 1709 阅读 · 0 评论 -
stm32---USMART调试组件使用步骤
什么是USMART?USMART是正点原子团队为其STM32开发平台开发的一种类似linux的shell的调试工具。具体工作过程是通过串口发送命令给单片机,然后单片机收到命令之后调用单片机里面对应的相关函数,并执行,同时支持返回结果。USMART调试过程:USMART配置步骤:将USMART包添加到工程中,头文件要包含到path。添加需要调用的函数到usmart_config.c文件中。主函数中调用usmart_dev.init函数初始化usmart。即可通过助手发送命令,调用在usmar原创 2021-05-16 00:23:58 · 241 阅读 · 0 评论 -
stm32---低功耗模式
待机唤醒配置步骤:①使能电源时钟。因为要配置电源控制寄存器,所以必须先使能电源时钟。RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);②设置WK_UP引脚作为唤醒源。设置PWR_CSR的EWUP位,使能WK_UP用于将CPU从待机模式唤醒。PWR_WakeUpPinCmd(ENABLE); //使能唤醒管脚功能③设置SLEEPDEEP位,设置PDDS位,执行WFI指令,进入待机模式。void PWR_EnterSTANDBYMod...原创 2021-05-16 00:24:02 · 507 阅读 · 0 评论 -
stm32---OLED(SSD1306)
OLED模块优缺点优点:尺寸小,分辨率高,低压3.3V就可工作,支持多种接口方式,该模块提供了总共4种接口包括:6800、8080两种并行接口方式、 4线的穿行SPI接口方式,、IIC接口方式(只需要2根线就可以控制OLED了!)。缺点:尺寸还难以大型化,价格昂贵OLED模块工作模式选择(4种模式通过模块的BS1/BS2设置)(默认8080)BS1/BS2的设置与模块接口模式的关系如表所示:OLED 8080并行接口信号线说明CS:OLED片选信号。WR:向OLED写入数据。RD:从OLE原创 2021-05-16 19:37:31 · 5573 阅读 · 0 评论 -
stm32---TFTLCD
ALINETEK 2.8寸 TFTLCD接口说明(16位80并口)注意:DB1~ DB8,DB10~ DB17,总是按顺序连接MCU的D0~D15LCD_CS:LCD片选信号LCD_WR:LCD写信号LCD_RD:LCD读信号DB[17:1]:16位双向数据线。LCD_RST:硬复位LCD信号(与MCU复位引脚相连)LCD_RS:命令/数据标志(0:命令,1:数据)BL_CTR:背光控制信号T_MISO/T_MOSI/T_PEN/T_CS/T_CLK,触摸屏接口信号ALINETEK原创 2021-05-16 23:05:41 · 2495 阅读 · 1 评论 -
stm32---ADC模数转换
ADC:模数转换器,将模拟信号(0v,3v,6v等)转换为表示一定比例电压值的数字信号(1,2,3等)。STM32F10x ADC特点12位逐次逼近型的模拟数字转换器。最多带3个ADC控制器最多支持18个通道,可最多测量16个外部和2个内部信号源。支持单次和连续转换模式转换结束,注入转换结束,和发生模拟看门狗事件时产生中断。通道0到通道n的自动扫描模式自动校准采样间隔可以按通道编程规则通道和注入通道均有外部触发选项转换结果支持左对齐或右对齐方式存储在16位数据寄存器ADC转换时间:原创 2021-05-17 21:55:21 · 7248 阅读 · 1 评论 -
stm32---DAC数模转换
DAC:数模转换器,即将数字量(数字123)转化为模拟量(电压值1v2v3v)。STM32的DAC模块主要特点有:① 2个DAC转换器2个输出通道,每个转换器对应1个输出通道② 8位或者12位输出③ 12位模式下数据左对齐或者右对齐 ,8位模式下数据右对齐④ 同步更新功能⑤ 噪声波形生成⑥ 三角波形生成⑦ 双DAC通道同时或者分别(独立)转换⑧ 每个通道都有DMA功能DAC模块框图VDDA和VSSA为DAC模块模拟部分的供电。Vref+则是DAC模块的参考电压,电压范围:2.4v&原创 2021-05-18 21:45:51 · 4622 阅读 · 0 评论 -
stm32---DMA
DMA:全称Direct Memory Access(直接存储器访问),把一个地址空间的值“复制”到另一个地址空间,使用DMA传输方式无需CPU直接控制传输,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。作用:为CPU减负。硬件方面,STM32最多有2个DMA控制器(DMA2仅存在大容量产品中),DMA1有7个通道,DMA2有5个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求(由硬件决定),附图DMA各通道限定可处理请求:还有一个“仲裁器”来协调原创 2021-05-20 00:59:46 · 12467 阅读 · 0 评论 -
stm32---硬件SPI
21.1.1 SPI 协议SPI(Serial Peripheral Interface,串行外设接口)是由摩托罗拉(Motorola)在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、FLASH、实时时钟、网络控制器、OLED显示驱动器、AD转换器,数字信号处理器、数字信号解码器等设备之间。SPI通常由四条线组成,一条主设备输出与从设备输入(Master Output Slave原创 2021-05-22 00:03:24 · 5454 阅读 · 11 评论 -
stm32---串口接口标准
串口串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。典型的串行通讯标准是RS232和RS485,它们定义了“电压,阻抗”等,但不对软件协议(波特率等)给予定义RS232接口缺陷:(1) 接口的信号电平值较高(+/-12V),易损坏接口电路的芯片。(2) 传输速率较低,在异步传输时,波特率为20Kbps。(3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以“抗噪声干扰性弱”。(4) 传输距离有限,最大传输距离标准值为50英尺原创 2021-05-22 23:27:50 · 3396 阅读 · 0 评论 -
STM32 硬件SPI 驱动 OLED
一、前期准备单片机:正点原子STM32F103mini板开发环境:MDK5.14库函数:标准库V3.5正点原子0.96 OLED模块 (BS1=0,BS2=0) :淘宝有售二、实验效果实验效果转载 2021-07-18 06:21:47 · 1123 阅读 · 0 评论