草庐IT

三、STM32中systick中断的优先级

1、systick中断的优先级systick为内核外设中断,与普通外设中断的优先级有些区别,并没有抢占优先级和子优先级的说法。对于M3来说内核外设的中断优先级由内核SCB这个外设的寄存器:SHPRx(x=1.2.3)来配置。内核外设的中断优先级可编程为0~15,数值越低,优先级越高。在SysTick_Config中,配置优先级为(1UL即1左移四位后减一,那计算结果就等于15,可以看出SysTick此时设置的优先级在内核外设中是最低的。2、systick中断优先级和外设中断优先级的比较对于普通外设中断优先级的配置来说,需要配置中断优先级分组,抢占优先级和子优先级。重要的一点是:NVIC的中断优

STM32速成笔记—串口通信

文章目录一、什么是串口通信二、串口通信有什么用三、STM32的串口通信四、串口通信相关概念4.1波特率4.2全双工和半双工4.3同步通信和异步通信五、硬件连接六、串口通信程序配置6.1使能串口时钟和GPIO时钟6.2初始化GPIO6.3初始化串口参数6.4使能串口6.5串口接收中断6.6串口接收中断服务函数6.7串口发送函数七、拓展7.1printf重定向7.2接收帧解析八、实战项目8.1前期准备8.2项目要求8.3串口程序8.3.1初始化串口8.3.2串口接收中断服务函数8.3.3接收帧解析函数8.3.3main函数一、什么是串口通信串口通信是指外部设备与主控芯片之间,通过数据信号线、地线等

基于STM32使用DHT11温湿度模块

目录前言一、DHT11模块介绍1、原理图2、通信时序(单总线)2.1、通信总过程2.2、起始信号及DHT11应答2.3、数字1信号的应答时序2.4、数字0信号的应答时序2.5、数据格式二、使用步骤1.使用CubeMX进行配置(基于stm32f407zgt6)2.编写相关函数​编辑3、实验结果三、代码分享总结前言DHT11模块是一种基于数字信号输出的简单温湿度传感器,它能够测量环境的温度和湿度,并将数据以数字信号的形式传输给控制主板,如Arduino,stm32,8051等微控制器。DHT11模块由温湿度传感器、微处理器以及一些电子元器件组成。该模块采用单线总线通讯方式,具有非常高的可靠性、稳定

STM32--实现LED闪烁

目录使用的开发板是:奋斗版STM32开发板V2​一、参考开发手册二、GPIO功能描述三、GPIO寄存器概念2.3.1端口配置低寄存器(GPIOx_CRL)(x=A..E)2.3.3端口输入数据寄存器(GPIOx_IDR)(x=A..E)四、开始实现LED灯闪烁1.先创建新工程2.选择芯片,这里选择的是STM32F103VE3.创建.c文件所使用的开发板是:奋斗版STM32开发板V2使用该开发板 学习了控制LED灯闪烁。前言  主要就是会使用STM3210X的开发手册,会查看板子的原理图,理解总线的概念,会找寄存器一、参考开发手册 可以看到,LED1在GPIOB5。二、GPIO功能描述每个GPI

STM32 keil MDK配置FPU详解

记录下keil对FPU的配置,及对应的宏参数。文章目录前言一、一些宏的说明二、勾选开启FPU前言FPU单元是芯片上一个独立于CPU处理的浮点运算单元,整个单元可以被使能和关闭。STM32F4带有32位单精度硬件FPU支持浮点指令集。相比Cortex-M3、Cortex-M0等无FPU的芯片高出数十倍甚至上百倍的运算性能。STM32F7/H7及以上处理器带有双精度硬件FPU。如果芯片支持FPU的话,ST公司会在驱动库中添加对应宏定义__FPU_PRESENT。下面这个是STM32G4系列,支持FPU没有FPU的芯片一般不会有这个宏定义,就像下面这个F1的一、一些宏的说明有效配置FPU的方法如下图

记录一次对STM32G4串口硬件FIFO的调试

记录一次对STM32G4串口硬件FIFO的调试前言:通常我们使用串口接收多字节数据会使用中断和DMA两种方式。使用中断方式,每接收到一个字节就会触发一次中断,我们可以在中断函数里将接收到的这一字节保存在内存中然后等待其他程序处理,也可以直接在中断函数里处理。使用DMA方式,需要事先开辟一块内存,每当接收到一个字节,DMA会自动将数据保存在开辟的内存中而不需要CPU的参与。中断方式的优点是可以在第一时间知道串口接收到了新数据,在一些对实时性要求特别高的情况下占优。而DMA方式则需要程序周期性的轮训接收内存,看看有没有收到新数据。但是中断方式每接收到一个字节都需要CPU去处理,在波特率比较高、数据

STM32驱动BY9301语音播报模块

简介:STM32F103C8T6驱动BY9301语音播报模块源码介绍。开发平台:KEILARMMCU型号:STM32F103C8T6传感器型号:BY9301特别提示:驱动内可能使用了某些其他组件,比如delay等,在文末外设模板下载地址内有。1积分源码下载地址在文末!!!接口图:使用举例:#include#include"BY9301.h"intmain(){ BY9301Class.init(9600);//初始化 BY9301Class.setVolume(30);//音量30 BY9301Class.sayFileID(1);//播放序号为1的mp3文件 while(1){}} 驱动源码

stm32 CAN发送丢包

stm32CAN发送丢包多机组网的工况下stm32CAN发送函数正常运行,数据更新,但是使用CAN抓包工具发现阶段性没数据,或者丢包等情况。这种情况分两种;发送太快,STM32集成的CAN控制器支持三个发送邮箱,但是一般的示例程序没有对邮箱的操作,默认使用邮箱0,发送太快导致邮箱占用过高导致丢包。//Findanemptysendingmailbox while(HAL_CAN_GetTxMailboxesFreeLevel(&CAN_H)==0); //Ifallthreesendermailboxesareblocked,waituntiloneofthemisfree if((CAN_

【STM32+HAL库+CubeMX】UART轮询收发、中断收发、DMA收发方法及空闲中断详解

Author:DrinkCat(szt@drinkcat.com)Copyright©2023DrinkCatOriginallink:DrinkCat’sBlog1.什么是UART?UART是一种异步串行通信接口,常用于通过串口与外部设备进行通信。它通过发送和接收数据帧来实现数据传输,使用起来相对简单。UART通常包含发送器(Transmitter)和接收器(Receiver),通过两根信号线(传输线)进行双向通信。2.UART协议内容简介UART协议将一长串数据切成很多固定长度的小段,分别发送。每小段数据前后会加上一些附加数据以保证通信的实时性和准确性,最后形成的每个小段叫做一个数据包——

信盈达CorexM4核心板STM32F407VGT6电路原理图\电源原理图\USB的工作原理\miniUSB的分类

一、电源部分电路Micro_USB插座中的+5V与GND就是直接提供VCC与GND,其中的D+与D-是接在CH340芯片上的实现串口通信的数据口。电源VCC通过一个自恢复保险丝接在一个自锁开关上,这样就分析完一个miniUSB的提供电源的原理图了。在原理图的右上角有一个AMS1117-3.3的器件,通过VIN输入口的电压5V变成VOUT输出电压3.3V,是一个降压芯片,实现板子上可以有3.3V的电压供其它元器件使用。下表是各个引脚的描述及作用:2条用来传送数据(D+、D-);1条是电源线(VBUS);1条则是接地线(GND)、1条是ID线。ID线—以用于识别不同的电缆端点,mini-A插头(即