草庐IT

STM32 F4串口空闲中断 + DMA实现数据发送

STM32F4串口空闲中断+DMA实现数据发送前言文章目录一、空闲中断二、DMA三、代码部分1、串口配置2、DMA配置前言最近在做STM32+ROS车的项目,STM32与ROS之间通信由于数据量大,所以在STM32端使用空闲中断+DMA的方案来减轻CPU的压力。文章目录一、空闲中断空闲中断顾名思义为空了,闲了,没事了进的中断,在没有数据流的时候会进入进行读取。在我们串口进行发送时实则为连续发送,两个字节之间时间间隔非常小,这时串口接收中断未达到空闲的状态,当一组数据发送完成后会进行一系列运行后再次发送,这段时间内没有数据再次接收,这时会进入空闲中断。这个间隔怎么定义呢?在空闲总线上,空闲的定义

基于STM32等单片机的项目作品汇总

本篇记录下自己做的项目作品,作品有实物也有仿真,以实物居多,主要是以单片机为主,单片机有HC32,STM32,STC,51等,本人从事单片机行业5年,拥有丰富的经验。也涉及QT,LVGL,嵌入式,IPC等,如有需求,请私信。一、STM32项目列表(实物)项目名称功能文件001_基于STM32的一键报警系统一键紧急报警,短信设置电话,TTS真人发音,跌倒检测,电话短信通知。源代码,原理图,实物002_基于STM32的智能家居语音控制系统语音唤醒,控制,按键设置,自动模式和手动模式,光敏检测等源代码,原理图,实物003_基于STM32的阳台花卉管理检测系统OLED显示,按键设置,自动浇水,APP实

STM32模拟I2C协议获取HMC5883L电子罗盘磁角度数据 (HAL)

STM32模拟I2C协议获取HMC5883L电子罗盘磁角度数据(HAL)HMC5883L传感器采用霍尼韦尔各向异性磁阻(AMR)技术,应用于罗盘和三轴磁场角度检测领域,常用于水平物体转动的角度识别。HMC5883L采用I2C总线接口,2.16~3.6V供电范围,带有校准测试功能。HMC5883L的硬件连接HMC5883L的硬件连接有5个管脚,除了VCC和GND,以及I2C的SCK和SDA,还有一根INT中断线,用于向MCU报告数据可读取。HMC5883L的寄存器说明HMC5883L有如下的一些寄存器,按作用分为4种:地址00~02用于配置测试过程中的采样平均次数,数据输出率,测量配置(对应正常

基于STM32 ARM+ FPGA 的软体机器人的 CAN总线运动控制器的设计

针对在软体机器人控制时,多电机协同控制过程中难度大、通用性差、协同性差等缺点,设计了基于ARM和FPGA的软体机器人的控制器局域网络(controllerareanetwork,CAN)总线运动控制器,采用ARMCortex-M4为内核的STM32F407开发板和AX7102FPGA开发板设计一种基于CAN总线的软体机器人运动控制器,主要包括该系统的体系架构、硬件设计和软件设计等。该控制器利用STM32作为控制核心和FPGA的高速处理能力来实现控制算法的运算,并用CAN总线技术来实现与上位机通信。经过试验操作,该控制器可以满足预定要求。软体机器人有别于传统刚体机器人,其具有众多优点,具有生物柔

[HAL库]STM32 ADC功能和DMA读数据的方法

这篇博客记录下STM32F103R8T6是怎么开ADC、用DMA搬数据的方法。方便日后使用的时候查资料。DMA其实就是个搬运工,专门负责搬数据,没有DMA之前,搬数据是由MCU核心来负责,虽说都能完成搬数据的动作,但是MCU干这件事浪费资源且效率低,所以有DMA的场合尽量使用DMA来负责搬数据,需要读数据的时候,可以直接去数组里取就行了。从建工程开始,下面是各步骤:第一步–选择时钟输入:第二步–设置调试模式:第三步–设置ADC基础设置、打开DMADMA模式选择为circular,代表循环模式,读完一次ADC之后,DMA继续读,并且继续往存放结果值的数组里面搬数据。开启了DMA之后,32Cube

stm32报错:identifier is undefined总结

stm32报错:identifierisundefined总结stm32报错:identifierisundefined很常见,查找网上资源后发现主要有三种情况自己进行总结,转载请注明出处并且私信提醒一下,谢谢原因分析:1.最常见的一种,是新手常犯的错误,主要是未添加相应的.h文件或者.h文件或者.c文件中根本就没有相应的变量,因此会进行报错。2.头文件的原因,即在不同文件夹中有相同名字的.h文件,在其他文件引用该头文件时,会造成编译器不能正确引用的结果3.有的时候结构体显示一直identifierisundefined,主要原因是该结构体所在文件中的头文件引用有错解决方案:1提前声明变量在.

STM32F407 ADC+DMA+定时器 定时采样模拟量

STM32F407ADC+DMA+定时器定时采样模拟量文章目录STM32F407ADC+DMA+定时器定时采样模拟量前言一、硬件原理1.1ADC1.2定时器3.DMA二、代码实现2.1初始化2.1.1PINinitial2.2ADC初始化代码2.3DMA初始化代码3.1定时器初始化3.2函数调用总结前言项目中需要对多个通道的电压进行一定频率的AD采样,由于采样过程贯穿整个任务,为了使采样过程尽可能不占用CPU资源,采用定时器触发的多通道ADC扫描采样,且采样数据由DMA传到RAM中的缓存。这样做有以下几个好处:1、由定时器触发ADC采样,这样采样的频率可控,且定时器触发不会占用任何CPU资源;

STM32CUBUMX配置RS485 modbus STM32(从机)亲测可用

————————————————————————————————————⏩大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。⏩最近在开发一个STM32H723ZGT6的板子,使用STM32CUBEMX做了很多驱动,包括ADC、UART、RS485、EEPROM(IIC)、FLASH(SPI)、modbus等等。⏩本篇文章对STM32CUBEMX在RS485通信的基础上做modbus通信做一个详细的使用教程。⏩感谢你的阅读,不对的地方欢迎指正。————————————————————————————————————modbuspoll工具下载modbus协议简介Modbus协议

STM32—看门狗详解入门(独立看门狗、窗口看门狗)

目录一、什么是看门狗?二、独立看门狗IWDG1.特点、本质及原理2.配置3.main.c代码三、窗口看门狗WWDG1.特点、本质及原理2.配置3.main.c代码四、独立看门狗与窗口看门狗的比较一、什么是看门狗?        看门狗主要是用来监测单片机运行状态和解决程序引起的故障的模块。       独立看门狗:        由于单片机的工作会受到外界的干扰,可能造成程序进入死循环或者程序跑飞,程序的正常运行被打断,单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态。为了防止进入这个情况便产生了一种专门用于实时监测单片机程序运行状态的模块或者芯片,俗称“看门狗”。    窗口看门狗

stm32f103与openmv串口通信

串口通信是指通过串行通信接口进行数据传输的一种通信方式。在串口通信中,数据被分成一个个的字节,按照一定的顺序依次发送和接收。串口通信通常使用UART(通用异步收发传输)协议进行数据传输。串口通信在嵌入式系统中应用非常广泛,其主要用途包括:调试和监控:开发者可以通过串口将嵌入式设备连接到电脑或其他设备上,实时输出设备状态、错误信息等,以便进行调试和监控。控制和通信:嵌入式设备可以通过串口与其他设备进行通信,例如与传感器、执行器、显示器等设备进行数据交互和控制。数据传输:串口通信可以用于传输各种类型的数据,包括文本、数字、图像、音频等等。远程控制和管理:通过互联网和串口通信,可以实现对远程嵌入式设