草庐IT

HAL_UART_Transmit_DMA

全部标签

【STM32】HAL库代码移植GD32,CAN总线收发例程(已调通)

一、移植对象从STM32F103CBT6移植到GD32F303CCT6。二、can总线通信源码1.mian.c#include"main.h"#include"can.h"#include"usart.h"#include"gpio.h"#include"stdio.h"#include"delay.h"externCAN_TxPacketTypeDefg_CanTxPacket;voidSystemClock_Config(void);uint32_ta;intmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_CAN_I

Android 13 Camera HAL启动流程(1)

文章目录前言AndroidCamera整体架构CameraProvidergetRawServiceInternalPassthroughServiceManager.getPassthroughServiceManager.openLibsHIDL_FETCH_ICameraProvider欢迎关注微信公众号无限无羡前言不积跬步,无以至千里;不积小流,无以成江海。本章将作为AndroidCamera系列的开篇,后续将会持续输出相关文章,尽可能的形成一个完整的系列内容。全部更新完毕时间可能会比较长,因为Camera的东西其实很多的,本人也需要不断的学习和深入。由于目前对Camera驱动的内容了

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

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

S32K3XX单片机DMA原理深度解析

首先我们需要了解,什么是DMA?DMA的中文名称叫做直接内存访问(DirectMemoryAccess),是一种不需要CPU参与,就能实现数据传输的技术(从一个地址空间到另一个地址空间)。也就是说,在不需要CPU插手的情况下,完成内存与外存之间的数据传输,从而CPU可以被解放出来,从事其他的工作。在S32K3XX系列单片机的参考手册中,直接称呼为EnhancedDirectMemoryAccess(eDMA),显然是与传统意义上的DMA有所不同。那么,eDMA究竟是何方神圣?与普通的DMA又有什么区别呢?目录1简介1.1DMA系统框图1.2各模块简介1.3特点2工作流程概述2.1基本工作流程2

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