草庐IT

CubeMX-DMA

全部标签

STM32CubeMx使用教程(五)—— 使用PWM控制蜂鸣器演唱孤勇者

本章节将讲解如何使用STM32CubeMx配置定时器,并使用PWM控制无源蜂鸣器频率演奏 前言1.软件准备:STM32CubeMx、Keil5_ MDK2.硬件准备:STM32F103最小系统板、无源蜂鸣器模块、杜邦线若干本实验所使用的所有器件清单和工程源码已上传至百度网盘链接:https://pan.baidu.com/s/11HC05dnI-CEzDaU9OL2ugA?pwd=80o8 提取码:80o8一、蜂鸣器发声原理 如图所示为蜂鸣器电路。一般来说,3.3V直流产生的电信号功率很小,不足以驱动蜂鸣器发出可听见的响声,所以整个模块中有一个电流放大模块,这便是图中的晶体三极管。图中的放大电

STM32开发利器:STM32CubeMX

    这篇博客篇幅不长,主要是为大家介绍ST公司推出的STM32CubeMX开发工具,当成下周更新STM3210个项目工程的预备篇,同时FPGAFPGA20个例程篇:8.SD卡任意地址的读写,代码部分已经编写完毕,对应博客正在整理中,如图1所示即为STM32CubeMX的图标。图1STM32CubeMX图标    在介绍STM32CubeMX之前,我们需要知道HAL库这个概念,实际在早些年大概2018年以前吧,大家做STM32工程开发,用的最多的是标准库,标准库自出道超过10年以来受广大使用者推崇,就算现在2022年还有一部分工程师、公司仍在继续使用。不过现实情况很残酷,ST官方已经不再更新

【HAL库】HAL库STM32cubemx快速使用

文章目录整体框图一、基础工程1新建工程2配置RCC3配置SYS4工程设置5生成代码6keil设置下载&复位二、必备外设1目录规范2LED2RTC3USART4KEY三、其他外设1OLED(模拟IIC、模拟SPI)2BH1750光强检测3MQ2烟雾检测3MQ4甲醛检测4DHT11温湿度5SIM900AGSM模块6BMP180气压传感器7ESP8266+Onenet+HTTP8ESP8266+Onenet+MQTT整体框图软件:keil5、STM32Cubemx硬件:淘宝的STM32F103C8T6最小系统一、基础工程1新建工程2配置RCC选择外部时钟源。设置外部晶振输入值,我这块板子是8M。然后

【STM32协议讲解】STM32CubeMX + STM32F103 + 逻辑分析仪分析IIC、SPI和串口协议

这段时间也是在准备STM32单片机的八股文总结,面试常问的一些关于传感器协议部分的问题,常见的为UART、RS232、RS485、IIC和SPI等。因UART、RS485和RS232同属串口协议,故只分析UART协议。本文主要是基于STM32CubeMx与正点原子的STM32F103精英学习板为实验基础,结合正点原子自产的逻辑分析仪进行波形分析。参考博客:【逻辑分析仪的简单使用介绍(附带i2c、串口、spi数据分析)】大纲一、IIC协议(以AT24C02为例)1.1IIC原理分析1.2STM32CubeMX+24C02实验1.3逻辑分析仪捕获IIC波形二、SPI协议2.1SPI协议原理2.2S

ZYNQ AXI_DMA_UDP以太网传输(二)问题记录

ZYNQAXI_DMA_UDP以太网传输(二)问题记录上一篇文章只是简单的记录一下调试成功的代码但调试成功这个过程很痛苦,踩了很多坑,特此记录,留眼以后查看问题1:DMA传输过程中报错dmaerror参考博客xilinxdma调试笔记ZYNQAXIDMA调试细节在调试过程中出现这类问题基本上都是这一句代码出了问题:axi_dma_start(MAX_PKT_LEN);再往里面跳可以看见这样一个函数,在正点原子提供的例程中是这样的status=XAxiDma_SimpleTransfer(&axidma,(u32)rx_buffer_ptr, pkt_len,XAXIDMA_DEVICE_TO

STM32/GD32学习指南-踩坑之(五)串口收发数据的三种方式:UART接收中断、UART+DMA空闲中断、UART+DMA超时中断,接收不定长数据,纯干货,有史以来最详细的讲解,附源码

一、串口收发功能介绍        常用的串口收发数据的方式一共两种,一种是不使用DMA,直接串口中断收发数据,另外一种是通过串口+DMA收发数据。1.串口接收数据:        对于使用DMA的串口数据收发,一般常用的还可以分为串口接收超时中断和串口空闲中断,所以细分的话,常用的主要有以下三种方式的串口数据接收使用方法:(1)直接串口中断接收数据:        也就是串口data寄存器非空即触发中断,中断标志为:USART_INT_RBNE;该种方法每接收一个字节的数据就会触发一次串口接收中断,当串口接收数据量小或是系统性能要求不高的情况下可以使用,如果串口接收数据量很大,频繁进入串口接

STM32 CubeMX学习实验13:定时器输入捕获获取PWM频率

一、工程配置使用定时器5作为输入捕获定时器,将通道1(PA0)设置为输入捕获,设置预分频器和计数值,这里设置为1us计数一次,最大可以捕获周期为0xFFFFFFFFus的PWM,所以一般不需要考虑溢出的问题,使能自动重装载。使能定时器中断,选择合适的优先级,  将引脚设置下拉,保证没有信号输入时保持电压的稳定,最大输出速度选择高。 在这里在这里可以选择任意定时器输出PWM,便于检验输入捕获的准确性,将TIM14通道1设置为PWM输出,频率为100Hz,其他默认即可。二、代码初始化和捕获实现在主函数中开启定时器捕获和更新中断,更新中断本例未使用到,根据需求开启。开启TIM14通道1,用于输出PW

HAL库 CubeMX STM32采用SDIO实现对SD卡和NAND Flash的读写

目录  完整项目源代码下载地址:HAL库CubeMXSTM32采用SDIO实现对SD卡和NANDFlash的读写资源-CSDN文库  一、选择合适的存储芯片。  可以去雷龙官网白嫖,白嫖链接:免费样品  二、SD卡/SDNAND底层原理  三、硬件设计  1、SDNAND引脚图  2、芯片外观及封装:  3、硬件电路原理图  4、测试用转接板实物图  四、CubeMX配置STM32具体步骤  1、时钟和系统配置  2、配置SDIO  3、配置DMA(可选)  4、设置串口  五、代码编写  1、公共代码  2、常规方式读写  3、DMA方式读写  六、结果分析  1、输入的函数参数是扇区编号,

STM32 CubeMX TIMx编码器模式无法进入中断踩坑记录(顺带解析一下HAL_TIM_Encoder_Start及其_IT函数)

目录问题的开始HAL_TIM_Encoder_Start及其_IT函数解析一个比较好玩的事情问题的开始        今天在用STM32F103VET6实现定时器TIM2编码器功能的时候,预采用中断查询方式对于编码器计数值进行查询,发现程序不能进入中断。工程使用CubeMX生成初始化代码。Main函数中是这样写的: MX_GPIO_Init(); MX_TIM2_Init(); MX_USART1_UART_Init(); /*USERCODEBEGIN2*/   printf("ready!");   HAL_TIM_Encoder_Start(&htim2,TIM_CHANNEL_3); 

尝试使用CubeMX做stm32开发之十:ADC配置

        参考《STM32中文参考手册_V10》,研究CubeMX中有关ADC的配置。一、配置参数ADC1ModeandConfiguration:        IN0~IN9:10路12位ADC采样通道,外部模拟量信号输入        TemperatureSensorChannel:MCU内置温度传感器采样通道,用来测量器件周围的温度。在MCU内部与ADC1_IN16通道相连        VrefintChannel:内部参考电压检测通道,ADC的参考电压都是通过Vref+引脚提供的并作为ADC转换器的基准电压,当Vref+直接取自VDD电压时,易受VDD波动而影响,因此可以该