草庐IT

CubeMX-DMA

全部标签

尝试使用CubeMX做stm32开发之十三:Clock Configuration(时钟树配置)

        参考《STM32中文参考手册_V10》,研究CubeMX中有关时钟树配置。一、系统时钟配置三种不同的时钟源可被用于驱动系统时钟(SYSCLK):HSI振荡器时钟HSE振荡器时钟PLL时钟时钟源选择对应时钟配置寄存器(RCC_CFGR)中的SW[1:0]位。三种不同的时钟源可被用于驱动系统时钟​​​​MCU中除了上述三种可用于驱动系统时钟的时钟源以外,还有2种二级时钟源:LSI:40kHz低速内部RC,可用于驱动独立看门狗和通过程序选择驱动RTCLSE:32.768kHz低速外部晶体也可用于通过程序选择驱动RTC独立的二级时钟源高速外部时钟信号(HSE)可由两种时钟源产生:HSE

JY62陀螺仪的联调用STM32CubeMX

想用陀螺仪实时显示欧拉角这是陀螺仪的官网JY62产品规格书通讯协议JY62WT61协议一、JY62模块连串口看看维特智能产品资料提供的程序不给力,不能直接用在STM32CubeMx的工程里,所以需要自己编。先用TTL转USB的模块跟电脑连上,在串口助手里看看收发内容,此模块是一直发送的,有个休眠模式(就是发和接到休眠命令时刻一样的加速度和角度),再次解除休眠又实时变化了。引脚这么接:模块默认是115200波特率,所以串口助手也115200,接了一段数据大概是这样可以看到和通讯协议上写的差不多,0x55开头,0x51加速度,0x52角速度,0x53角度TYPE备注0x51加速度0x52角速度0x

STM32 CubeMX USB_(HID 鼠标和键盘)

STM32CubeMXSTM32CubeMXUSB_HID(HID鼠标和键盘)STM32CubeMX前言《鼠标》一、STM32CubeMX设置USB时钟设置USB使能UBS功能选择二、代码部分添加代码鼠标发送给PC的数据解析实验效果《键盘》STM32CubeMX设置(同上)代码部分前言STM32CubeMX自动生成的USB_HID是鼠标类型的:键盘类型要做一点小修改;《鼠标》一、STM32CubeMX设置USB时钟设置USB使能UBS功能选择二、代码部分添加代码#include"usbd_hid.h"externUSBD_HandleTypeDefhUsbDeviceFS;uint8_tHID

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

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

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

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

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资源;

STM32CUBEMX_更新工程每次都会删掉用户自己的代码怎么解决?

STM32CUBEMX_更新工程每次都会删掉用户自己的代码怎么解决?前言:正常来说使用STM32CUBEMX更新工程配置,使用KEIL打开,只要配置好STM32CUBEMX软件,然后把用户代码写在/USERCODEBEGIN/和/USERCODEEND/之间时,就不会把户代码删掉,但是我把软件配置好,代码也按照规定写在两个注释之间,结果每次还是会把我的用户代码删除掉。具体原因也没有定论,根据现有分析猜的是因为,公司的加密软件导致的软件异常。所以不在纠结,采用一种规避的方式完美解决。具体做法步骤:1、既然CUBEMX的文件中不能写用户程序,就把用户程序全部自己新建文件,写自己的代码2、自己写一个

Ultra DMA CRC 错误计数 【警告】

    最近使用鲁大师体检,提示我UltraDMACRC错误计数,我第一次遇到这个问题。        因为前几天固态硬盘就意外损坏,所以这次就很担心硬盘再次损坏。于是上网查找资料!原因分析:1、可能是硬盘和主板连接的SATA数据线接触不良导致;2、软件误报3、硬盘质量问题。解决方法:1、首先尝试换一条做工质量都比较好的SATA数据线,看问题能否解决。2、用AIDA64或HDTUNE看下SMART健康值,看数值是否增加,如果增加了,就把关机下把硬盘线对调多插拔几次或和光驱线换下看是否增加,不增加了还蓝屏有有可能是其它问题。3、如果使用的是鲁大师检测出现“ultradmacrc错误计数”而电脑本

最新CubeMX配置CAN通讯教程,避免踩坑,附全套工程文件

这两天在学习CAN的过程中,踩过了无数的坑,各种莫名其妙的死机、发送接收无响应差点把我搞疯了,在网上查资料也很难查到针对自己问题的答案。星光不负赶路人,今天终于调好了,本着“人人为我,我为人人!”的精神,现在把过程记录下来,避免后来者踩坑。注意,本文非常合适“快餐式”熟悉CAN的同学们,比如赶着投胎并不想了解CAN通讯的,那恭喜你,为了更细致,篇幅可能有点长;如果你想详细了解CAN通讯,请出门右转。先说一波,转载我的文章拿去卖钱的,生儿子没PY!!!!前言手里有不少板子跟教材,包括正点原子的、硬石科技的,首先非常感谢这些为嵌入式开荒的前辈们。历史惯例,先吹捧一波,再吐槽一波,针对新版HAL库的

STM32CubeMX一键升级

使用STM32CubeMX过程中会遇到检查版本更新可用却无法打勾更新的情况解决方案是:1.桌面右键STM32CubeMX程序2.选择兼容性选项卡3.勾上以管理员身份运行问题解决