最近做项目需要用H743的ADC采样,发现和M3及M4的差别还是蛮多的,MPU的配置对DMA读取数据的影响、过采样机制等,其中H7的硬件过采样是个很实用的东西,硬汉大佬也进行了测试:STM32H7的ADC过采样功能立竿见影,效果的确不错-STM32H7-硬汉嵌入式论坛-PoweredbyDiscuz!(armbbs.cn)看了硬汉大佬的教程发现H7的ADC过采样讲的不多,我这里完善一下吧。其中很多都是我自己看cubeMX生成的工程源码中的注释和H7官方手册自己理解的,或许会有错误的地方,还请大佬们及时更正。废话不多说,直接上cubeMX。1、配置RCC,这里有个注意的点,如果你要想将H7的主频
文章目录一、PWM简介PWM工作模式PWM时间计算二、STM32CubeMX配置三、代码详解附录一、PWM简介PWM(PulseWidthModulation)就是对外输出脉宽(即占空比)可调的方波信号,简称脉宽调制;信号频率由自动重装寄存器ARR的值决定,占空比由比较寄存器CCR的值决定。PWM工作模式PWM模式1:在向上计数时,一旦TIMx_CNT在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。总结就是:PWM模式1,无论是向上还是向下计数,当计数值小于重装载值是输出有效电平。PWM模式2:在向上计数时,一旦
记录项目的详细制作过程,所以笔记很长,图很多、很多图不好CSDN搬运,我把笔记放网盘或者自己根据资料下载笔记网盘下载:链接:https://pan.baidu.com/s/1Mk2EVIha7Fpj4Xductg3Uw?pwd=VCC1提取码:VCC1笔记CSDN下载:第一章-硬件1.1-元件选型[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R0hM1EjE-1675083353042)(https://hjhvcc.oss-cn-nanjing.aliyuncs.com/img/20230130191750.png)]1.2-原理图与PCB底板原理图各个模块的
文章目录一、实验环境二、STM32CubeMX的安装三、使用STM32CubeMX完成串口通信1.安装固件库2.工程设置四、USART串口通信1.UART函数库介绍2.代码编写3.调试结果五、软件调试六、总结七、参考资料一、实验环境硬件:stm32f103c8t6核心板软件:STM32CubeMX6.6.1keil5mdk二、STM32CubeMX的安装这里就不再详细介绍了,详细请参考上一篇博客:https://blog.csdn.net/qq_55894922/article/details/127232999?spm=1001.2014.3001.5501三、使用STM32CubeMX完成
本人使用国产的实时操作系统RT-thread,屏幕使用的TFTLCD,屏幕IC是LIL9341这里就不讲移植了,如果需要,请评论,后面出;前提:移植好LCD,移植好LVGL(不适用DMA能正常显示)使用STM32Cubemax配置DMA上图中,BurstSize的具体配置根据芯片参考手册来选择,如果要用FIFO的话就需要选择因为LVGL需要屏幕数据传输完后通知一下LVGL,所以这里要启用DMA中断2、添加代码2.1、注册DMA中断/**注册的是传输完成中断*具体注册的中断服务函数在lv_port_disp.c中*/HAL_DMA_RegisterCallback(&hdma_memtomem_
本人使用国产的实时操作系统RT-thread,屏幕使用的TFTLCD,屏幕IC是LIL9341这里就不讲移植了,如果需要,请评论,后面出;前提:移植好LCD,移植好LVGL(不适用DMA能正常显示)使用STM32Cubemax配置DMA上图中,BurstSize的具体配置根据芯片参考手册来选择,如果要用FIFO的话就需要选择因为LVGL需要屏幕数据传输完后通知一下LVGL,所以这里要启用DMA中断2、添加代码2.1、注册DMA中断/**注册的是传输完成中断*具体注册的中断服务函数在lv_port_disp.c中*/HAL_DMA_RegisterCallback(&hdma_memtomem_
文章目录前言一、本地环境二、开始1.定时器配置2.内部时钟配置2.TIMER配置4.代码生成3.编译工程4.添加功能代码5.外部时钟配置前言记录一下STM32CubeMX的学习笔记,同时分享给初学的小白,希望一起进步。如何使用STM32CubeMX以及工程创建在之前的博客有提到,这里就直接从定时器讲起。一、本地环境编译环境:KEIL代码生成:STM32CubeMX库:HALMCU:STM32F072二、开始1.定时器配置假设你的cubeMX工程已经建好,这里我们开始配置定时器2(TIM2),使用内部时钟源。2.内部时钟配置配置完GPIO后开始配置时钟,我这里配置的是内部时钟,配置的24Mhz的
STM32cubemx教程(一)2021.10.17简介STM32CubeMX是ST意法半导体近几年来大力推荐的STM32芯片图形化配置工具,目的就是为了方便开发者,允许用户使用图形化向导生成C初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32全系列芯片。在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IARForARM、TrueStudio等省去了我们配置各种外设的时间。补充:32的三种开发模式1.stm32能基于寄存器开发,就是和51单片机一样,直接对寄存器进行编程。基于寄存器编写的
目录1.CUBEMx设置1.1新建工程1.2芯片配置1.2.1时钟配置 1.2.2系统调试配置 1.3ADC配置1.3.1ParameterSettings配置 1.3.2DMASettings配置1.4工程配置 2.程序完善2.1完善main函数 2.2调试3.总结1.CUBEMx设置1.1新建工程1.2芯片配置1.2.1时钟配置 在1处输入72按回车,系统会自动将其他的时钟调整为相对应的配置。 1.2.2系统调试配置为了使生成的程序可以进行在线调试,重新点击1处的Pinout&Configuration,点击SYS,在Debug处点击SerialWire。 1.3ADC配置此处我们将14路
AXI-DMA:实现数据从PS内存到PL的高速传输。 Zynq芯片有4个高速接口HP口,接口时序是AXI时序,需要通过AXI的时序把数据写入到HP口,HP口实际是跟ARM的DDR3的控制器互联的,这样的话,就能把FPGA这一侧的数据写入到ARM的内存里面去,这个过程叫做DMA。 DMA介绍: DMA直接存储器访问,无需CPU介入,提高数据的访问速率。因为CPU一个总线周期最多对总线进行一次读写操作,对于CPU处理器,如果要把内存中A地址的数据搬移到B地址,需要先将A地址的数据取出并放入寄存器,再从寄存器取出数据放入B地址,需要花费两个