草庐IT

HAL_UART_RxCpltCallback

全部标签

STM32 HAL库定时器输入捕获SlaveMode脉宽测量

STM32HAL库定时器输入捕获SlaveMode脉宽测量📓SlaveMode模式简介✨SlaveMode复位模式:在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化;同时,如果TIMx_CR1寄存器的URS位为低,还会产生一个更新事件UEV;然后所有的预装载寄存器(TIMx_ARR,TIMx_CCRx)都会被更新。🔖当所测频率低于最小定时器捕获频率时,需要使能自动重装载和定时器溢出中断。SlaveMode模式下当输入捕获引脚接收到脉冲的上降沿信号时,产生复位并从零开始重新计数。🎋一个周期内的总计数:输入捕获上(下)升沿信号开始,到下一个上(下)升沿结束总计数个数:CNT=N∗(A

STM32HAL库驱动DHT11和BH1750

文章目录硬件配置软件配置DHT11代码编写BH1750代码编写虚拟串口输出和OLED显示硬件配置stm32f103c8t6DHT11(温湿度传感器)BH1750(光照度传感器)OLEDmicroUSB数据传输线软件配置sys->Debug->SerialWrieRCC->HSE->Crystal/CerarnicResonatorPC13->GPIO_OutTIM1->ClockSource->InternalClockParameterSettings为后面DHT11的延时us起作用TIM2->ClockSource->InternalClockParameterSettingsNVICSe

APB-UART(1)

UARTUART是现在MCU常用外设,它具有应用简单(只有几个寄存器),应用广泛,接线简单等优点,对电平进行转换后,通信距离较长。波特率单位:bps(位每秒),指发送一位所占用的时间FunctionaldescriptionTransmitFIFO发送FIFO是一个8位宽、32位深的FIFO存储缓冲器。通过APB接口写入的CPU数据存储在FIFO中,直到被发送逻辑读出。您可以禁用发送FIFO,使其像一个单字节保持寄存器一样工作。ReceiveFIFO接收FIFO是一个12位宽、32位深的FIFO存储缓冲器。接收数据和相应的错误位由接收逻辑存储在接收FIFO中,直到CPU通过APB接口将其读出。

STM32 HAL库:使用C标准库或MicroLIB实现printf && 多串口使用printf输出 && 结合DMA实现printf && 常见问题总结

综合多篇文章对实现printf进行总结,本篇博客包含内容如下:使用MicroLIB实现printf(Windows环境下和Linux环境下)使用C标准库实现printf(也就是不需要配置工程打开MicroLIB)结合DMA实现printf(针对大量数据、OS任务间使用printf冲突)多串口通信(当有多个串口通信设备时)printf使用常见问题如果本篇博客对你有帮助的话,记得点个赞哦!谢谢大家!😀😀😀😀😀😀文章目录一、需打开MicroLIB版打开MicroLIB,后面的步骤基于此(重点!!!!!!!)1.1方案一1.1.1修改usart.cⅠ添加头文件stdio.hⅡ定义结构体FILEⅢ重写f

单片机——通信协议(UART协议解析篇)

一、引言        在嵌入式系统设计中,UART通信是一种广泛使用的串行通信协议,它通过两条信号线实现全双工的数据传输和接收。UART通信协议以其简单、灵活和易于集成的特点,在嵌入式设备之间以及与外部设备进行通信时发挥着重要作用。本文将详细介绍UART通信的工作原理、特点和实现方式。二、UART通信工作原理        UART通信是一种异步串行通信方式,它使用两条信号线进行数据传输:发送数据线(TX)和接收数据线(RX)。在UART通信中,字符是传输的基本单位,每个字符由一位起始位、若干位数据位(根据需要可变)和一位停止位组成。数据在发送端被逐位发送,在接收端逐位接收。UART通信协议

stm32使用i2c读写eeprom的HAL库实现

stm32使用i2c读写eeprom的HAL库实现快速查看stm32使用i2c读写eeprom的HAL库实现实验目的缘起搭建工程实验现象本文中使用的测试工程附录本文目标:基于HAL库的stm32实现eeprom的i2c实验按照本文的描述,应该可以跑通实验并举一反三。先决条件:装有编译和集成的开发环境,比如:KeiluVision5、STM32CubeMX使用外设:I2C1、USART1、GPIOEEPROM(也称为E2PROM)代表电可擦除可编程只读存储器,是计算机中使用的一种非易失性存储器,通常集成在智能卡和远程无钥匙系统等微控制器中,或作为一个单独的芯片设备,通过允许擦除和重新编程单个字节

嵌入式-32单片机-基于HAL库的电动车报警器项目(开源)

一:项目描述1.功能描述:通过一个无线遥控器控制电动车的报警器。2.需求分析:当遥控器按A进入警报模式,当小偷触碰电动车,电动车振动传感器会发出信号,触发继电器,继电器闭合高功率喇叭响起;当遥控器按B则关闭警报模式,此时摇晃电动车,喇叭不会响。二:项目硬件材料1.STM32F103系列开发板12.振动传感器13.继电器14.高功率喇叭15.无线遥控器(433M无线发射模块1+433M无线接收模块1)三:思路分析1.用cubemx配置,形成初步的各种寄存器代码2.用Keil5写业务逻辑代码,先用中文写出来逻辑,再写各个代码进去四:CubeMX界面配置1.芯片选型:stm32F103C8T62.G

STM32使用HAL库驱动DS3231

1、STM32通讯口配置启动IIC,默认配置即可。2、头文件#ifndef__DS3231_H#define__DS3231_H#include"main.h"#defineDS3231_COM_PORThi2c1 /*通讯端口*//****************************defines*******************************/#defineDS3231_ADDR 0xd0/*DS3231slaveaddress(write)*/#defineDS3231_SEC 0x00//秒#defineDS3231_MIN 0x01//分#defineD

STM32HAL库驱动数码管

本文档创建于2023年3月7日本文记录了我学习数码管驱动的过程,实际是微机原理课上留的一个作业。本文作者:RobotFreak本文参考《NANO_STM32F103开发指南-HAL库版本_V2.0》,正点原子官网可下载。数码管驱动原理数码管,也称LED数码管,按发光二极管单元连接方式可分为“共阳极数码管”和“共阴极数码管”。我们使用的正点原子NANOSTM32F103开发板板载的数码管为四位共阴极数码管,实物图于内部引脚图如下:共阳极数码管是指将所有发光二极管的阳极接到一起,而共阴极数码管则是发光二极管的阴极连到一起,连接方式如下:从上图可以看到,数码管为共阴时,当某一字段的发光二极管阳极为高

HAL_TIM_Base_Start_IT和 HAL_TIM_Base_Start 区别

HAL_TIM_Base_Start_IT函数启动定时器并开启中断,在定时器计数器溢出时,会触发中断。这个函数主要用于周期性地执行某个任务。在函数调用之后,定时器会开始工作,并且会在每个计数器周期结束时触发一个中断请求。HAL_TIM_Base_Start函数仅仅是启动定时器而已,不会开启中断,因此不会在计数器溢出时触发中断。这个函数主要用于需要通过软件查询计数器的值来判断时间的应用场景,例如精确的延时控制等。在函数调用之后,定时器会开始工作,但不会自动触发任何中断请求。因此,两者的区别在于是否开启中断,以及是否适用于周期性任务。如果需要周期性地执行某个任务,可以使用HAL_TIM_Base_