草庐IT

STM32H5开发(2)----新特性

STM32H5开发----2.总览STM32H5vsSTM32F4样品申请性能提升更快的FLASH增强的系统架构vs.F4I-CACHED-CACHE性能对比H5vs.F4更高的动态能效更低静态功耗功耗优化特性功耗优化窍门–Sleep模式功耗优化窍门–Stop模式STM32H5vsSTM32F4性能提升搭载Cortex-M33内核,每兆赫1.5DMIPS和4.09CoreMark,为系统提供更强的计算能力。采用先进的40nm工艺,带来更高的系统主频和更快的flash访问速度。具备增强的系统架构,进一步提升整体性能。新特性,高集成,高性价比利用40nm工艺,内部存储器(FLASH+RAM)得到扩

STM32 ADC单/多通道采样+DMA搬运

一、ADC介绍通过介绍我们可以了解到,ADC是12位的转换器,所以采样值范围是0~4095。18个通道可同时进行转换,也可以单独转换某个通道。二、单通道单次ADC采样使用ADC的流程应为:初始化IO口。我这里使用的是PA1进行采样,也就是ADC1的通道1voidADC_GPIO_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//打开IO时钟 //配置ADC对应的IO为模拟输入 GPIO_InitStructure.GPIO_Pin=GPI

STM32单片机实现固件在线升级(IAP)

固件升级方案综述单片机的固件升级方式有很多种,1、ICP:InCircuitPrograming,简单说就是在单片机开发时使用烧录器升级程序,比如使用J-Link烧录单片机程序。2、ISP:InSystemPrograming,在单片机内部实现了基于通信接口(如串口、I2C、SPI等等)的FLASH引导程序,配合厂家提供的烧录软件工具或自行开发的软件实现程序烧录。3、IAP:InapplicatingPrograming,是指单片机程序开发好之后在运行过程中由外部用户发起的在线升级,这种升级方式一般由用户自行设计升级方案,方案灵活性和自由度较高,在智能家居、汽车电子、物联网设备中常用的OTA(

STM32CubeIDE开发实践案例-专栏总述

STM32CubeIDE开发专栏总述目录一、本专栏基本结束二、专栏内容及博文索引(共36篇)       2.1基础知识        2.2日志打印输出        2.3内部功能       2.4各种外设       2.5RTOS系统结合        2.6人工智能-cube.AI       2.7篇外-RTThread三、本专栏涉及源码一、本专栏基本结束       本专栏主要是围绕如何应用cubeIDE工具开发STM32项目展开,随着AI模块部分写完,本专栏关于CubeIDE开发技术点已经基本覆盖,cubeIDE工具只是stm32cube体系的一个工具,但涉及了很多开发内容,

基于STM32的USB键盘制作(保姆级)(一)

系列文章目录第一节  USB协议及建立USB-HID工程第二节 配置描述符及HID报文格式第三节 PCB按键映射(基于稚晖君开源) 文章目录前言一、USB协议二、新建一个USB-HID工程1.时钟及GPIO配置2.USB库的配置及部分参数分析总结 前言此系列主要讲利用cubemx配置USB-HID协议,实现USB键盘,以及稚晖君键盘映射代码分析。 一、USB协议具体讲解参考这位大佬:USB具体通讯过程(含枚举过程)_go_str的博客-CSDN博客了解需要枚举的相关报文即可 在创建USB工程中,我们主要设置设备描述符、配置描述符、报文描述符。下文讲解。二、cubemx新建USB工程 注:笔者使

2023年电赛小练习,利用stm32f407,hal库开发实现AD9854模块输出以及扫频

信号源在扫频仪、阻抗分析仪中都有应用。前面的实验通过单片机的DAC( DMA控制)或FPGA的ROMIP核实现了正弦波信号的产生。为了得到频率高、幅度平坦的信号源,现在通过集成的DDS模块AD9854产生任意频率的正弦波信号。1、训练任务:  在学习DDS原理的基础上,以STM32或FPGA为核心,辅以AD9854模块、矩阵键盘、TFT显示屏构成一个多功能的DDS信号源。实现以下功能。(1)两路正交信号输出模式时(即输出的四路正弦波信号相位相差90度),信号频率最大达到50MHz,频率可通过按键自定义设置。进一步不断增大输出信号的频率,测试输出信号幅度的平坦度,用excel表格做好记录。注意阻

STM32 10个工程篇:1.IAP远程升级(五)

    伴随着催更不断,周日晚上来继续撰写STM32IAP远程升级的项目例程,在这篇博客中笔者主要结合上位机报文发送机制来介绍下位机的报文解析设计,坚持做原创博客确实是一件很考验耐力的事情,一方面博客的文字和图片需要投入大量精力和时间,另一方面想要把意思表达清楚也需要多思考再动笔,只希望这些博客能真正帮助到需要的人吧。    嵌入式ARM、DSP、FPGA、PCB的付费教程很多,可以说看起来市面似乎真的不缺教程,但是为什么就让人觉得入门很难提高更难呢,这里面原因无外乎是教程和项目之间的差距,比如说现实中很多人做嵌入式开发,从毕业到工作好几年,只掌握了PCB原理图、版图的简单设计和MCU一般性的

STM32单片机同时初始化GPIOA和GPIOB

要同时初始化STM32F1xx的GPIOA和GPIOB,您可以按照以下步骤进行:首先,在代码中包含stm32f1xx.h头文件,例如:#include"stm32f1xx.h"然后,使能GPIOA和GPIOB的时钟,例如:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);这将使能GPIOA和GPIOB的时钟,以便进行配置和使用。需要注意的是,STM32F103C8T6使用APB2总线驱动GPIOA和GPIOB。接下来,设置GPIOA和GPIOB的引脚模式和输出类型,例如:GPIO_InitTypeD

STM32 串口DMA接收数据(高效接收数据)

关于重定义极度不推荐在使用DMA的时候按照传统的方式进行重定义!!!非常简单,轮询方式整个CPU在串口发送时处于等待状态,但是使用DMA时无法确保当前DMA已经传输完成。有同学可能会认为可以通过判断DMA的传输标志位来进行等待,但如果这样的话就丧失了DMA的设计意图:再次使用经过优化的重定义:找到usart.c这个c文件并打开:先在这个文件里面添加头文件:#include和#include然后再用户代码区添加(UartTxBuf[128]需要设置全局,否则可能会出错): unsignedcharUartTxBuf[128];voidUsart1Printf(constchar*format,.

STM32——关于NVIC讲解及标准库应用(基础篇)

简介:        NVIC是指STM32中的中断控制器(NestedVectoredInterruptController)。中断是STM32中的重要机制,通过中断可以实现异步事件处理。NVIC提供了灵活、高效、可扩展的中断处理机制,支持多级优先级、多向中断、嵌套向量中断等特性,是STM32中的重要组件。        当STM32在程序运行过程中触发中断条件时,STM32会暂停当前正在运行的程序,转头去处理中断程序,处理完后又会返回原先暂停的地方继续运行主程序。这样,STM32的中断就会产生以下中断处理流程:        中断处理分为三个阶段:中断响应、中断处理、中断返回。中断响应:当