草庐IT

CubeMX-DMA

全部标签

【HAL库】STM32CubeMX开发----非阻塞延时实验----SysTick(滴答定时器)中断

STM32CubeMX下载和安装详细教程【HAL库】STM32CubeMX开发----STM32F103/F207/F407----目录前言HAL库有自带的ms级延时函数:HAL_Delay();缺点:这是阻塞延时方式,就是延时期间,什么都不能干,这样很浪费资源。这篇文章主要介绍,利用SysTick(滴答定时器)中断实现非阻塞延时的实验。STM32F407----非阻塞延时实验主要是利用SysTick(滴答定时器)中断中有一个计数变量,每1ms加1,通过获取这个时间数值变量,实现非阻塞延时。相关HAL库函数/***@功能:获取以毫秒为单位的tick值*@参数:无*@返回值:以毫秒为单位的tic

【正点原子FPGA连载】第二十一章AXI DMA环路测试 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1)实验平台:正点原子MPSoC开发板2)平台购买地址:https://detail.tmall.com/item.htm?id=6924508746703)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-340252-1-1.html第二十一章AXIDMA环路测试DMA(DirectMemoryAccess,直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理。DMA是一种快速的数据传送方式,通常用来传送数据量较多的数据块,很多硬件系统会使用DMA,包括硬

STM32-单通道ADC采集(DMA读取)实验

关于ADC的一些原理和实验我们已经有了2篇笔记,链接如下:关于ADC的笔记1_Mr_rustylake的博客-CSDN博客STM32-ADC单通道采集实验_Mr_rustylake的博客-CSDN博客实验要求:通过ADC1通道1(PA1)采集电位器的电压,并显示ADC转换的数字量和换算后的电压值。我们通过下表可以知道DMA1通道1的外设对应的就是ADC1的读取。首先确定我们的最小刻度,Vref=3.3V,所以0V接下来确定转换时间。采样时间239.5个ADC时钟周期为例,可以得到转换时间为21us。时间转换公式参考如下公式:Tcvtmin=(12.5+X)周期=(12.5+X)/(12MHz)

使用STM32CubeMX创建STM32工程(串口,硬件IIC配置)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、STM32CubeMX是什么?二、使用步骤1.新建工程2.选择芯片型号3.时钟配置4.外设配置5.项目管理总结前言最近教研室的项目需要使用STM32做处理器,对环境数据进行采集处理,在拿到板子后,需要根据单片机具体型号(STM32F411CEU6)创建工程,再进行上层应用的开发。因为以前都是用的F1系列的开发板,用的时候直接在官方例程上进行修改就可以,这次使用全新的芯片,需要自己使用STM32CubeMX进行底层硬件的配置。一、STM32CubeMX是什么?STM32CubeMX是一款十分简洁易用的图形化MCU开发

FT2004(D2000)开发实战之网口stmmac报错调试(Failed to reset the dma)

一报错信息概述主芯片为飞腾FT2004,网口MAC为stmmac,phy芯片为ar8035,工作接口为RGMII接口具体报错信息如下所示:[21.870860]IPv6:ADDRCONF(NETDEV_UP):eth0:linkisnotready[21.951300]Atheros8035ethernetstmmac-0:04:attachedPHYdriver[Atheros8035ethernet](mii_bus:phy_addr=stmmac-0:)[22.064603]stmmaceth2820c000.eth:Failedtoresetthedma

STM32 DSP库CUBEMX配置+FFT频率计算

文章目录前言一、DSP库添加1.1加一个define1.2添加文件路径1.3主函数二、FFT运算求频率2.1初始版本版本2总结前言使用DSP中的函数加快计算。本文首先讲述如何通过添加dsp库。再讲述使用DSP库进行实数FFT运算。(FFT运算用到了前面讲述的STM32CubeMX-ADChal库3定时器触发)参考1文章参考2文章一、DSP库添加1.1加一个define,ARM_MATH_CM3//F1是M3,F4是M4,H7是M71.2添加文件路径先找到文件路径然后设置如下路径双击如下并找到路径D:\STM32CubeMX\STM32Cube_FW_F4_V1.26.2\Drivers\CMS

STM32开发——简介、开发环境(Keil5、CubeMX)、HAL库

目录1.简介-初识STM322.开发环境2.1使用Keil5 2.2使用STM32CubeMX 3.标准库与HAL库区别4.推挽输出与开漏输出1.简介-初识STM32什么是单片机?单片机(Single-ChipMicrocomputer)是一种集成电路芯片,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。STM系列单片机命名规则ST--意法半导体M--Microelectro

STM32F103:ADC采样——定时器触发+DMA传输

实现ADC多通道采样,采用DMA传输,采样由定时器触发初始化代码:voidAdc_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; DMA_InitTypeDefDMA_InitStructure; ADC_InitTypeDefADC_InitStructure; TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; TIM_OCInitTypeDefTIM_OCInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Per

STM32CUBEMX—查表法实现SPWM

        SPWM称为正弦波脉宽调制,其原理是采用三角波作为载波,正弦波作为调制波合成后生成的等高不等宽的PWM波。在simulink仿真中直接用三角波模块与sinewave合成即可,但对于编程来说比较麻烦,且运算较大占用CPU资源,一般采用查表法来实现正弦波。  可以看到仿真的PWM信号是按照正弦规律变化。关于SPWM的知识不再赘述,下面用CUBEMX实现单片机的SPWM        我采用了STM32F4系列单片机,主频可以到168MHZ,具体如何配置不再赘述。        首先需要PWM通道,这里我用了TIM8定时器,SPWM编程的核心思想就是在每个PWM周期改变其占空比。  

通过修改HAL_UART_Transmit_DMA()函数,解决串口发送DMA只能发送一次的问题

参考文章:1. http://t.csdn.cn/FT6Mg         2. http://t.csdn.cn/ejFIQ今天用STM32F1的HAL库开发遇到一个奇怪的问题,在主函数循环调用中用串口1的DMA请求,将内存中的数据发送给串口,无论延迟Delay开了多大,始终只能发送一次DMA数据。后来在网上查阅大佬的资料终于有了思路。废话不多说,先上代码:在stm32f1xx_hal_uart.c文件中找到HAL_UART_Transmit_DMA()函数实现,在解锁操作__HAL_UNLOCK;后添加代码:huart->gState=HAL_UART_STATE_READY; 编译以后