今天翻出之前的USART学习总结,  重温STM32 的 USART 接收处理,然后根据使用更新一些资料。 实验环境:STM32F429IG(魔女开发板) + Keil_5.27 + 寄存器操作实验效果如下USART 的两种数据接收方式1:RENE - 非空中断最常用!代码简单!但数据处理时稍麻烦,常配合简单的数据协议,如判断某
欢迎跟小飞哥一起学cubemx与HAL,本期串口DMA使用,系列教程不断更新,欢迎关注,skr~
原创 2022-03-07 14:58:06
2625阅读
接着上一篇关于STM32H7串口收发问题,继续说,上一篇里边提供了中断接收方式,最大的缺点就是中断过于频繁,为了解决这个问题那就把DMA搬过来,它不就是专门搬用数据的嘛,不用多可惜。首先我们需要大致了解,DMA和外设传送数据,例如串口,我们希望,当一帧数据接收完毕了,有个东西告诉主程序,串口接收到了一帧n个字节的数据存在某个地方,接收过程中你丫别打搅我。DMA就能胜任这个工作,他可以以中断的形式告
STM32的HAL开发系列 - 串口DMA发送
原创 2024-01-17 06:22:39
569阅读
STM32的HAL开发系列 - 串口DMA接收
原创 2024-01-17 06:22:44
2423阅读
main.c文件中的主要代码.uint8_t SendBuffer[] = "hello stm32 \r\n";int main(void){ while (1) { /* USER CODE END WHILE */ //HAL_UART_Transmit(&huart2, (uint8_t *)SendBuffer, sizeof(SendBuffer),10);
原创 2022-11-15 19:28:59
653阅读
AD的基础知识  AD很复杂,其实也不复杂,因为我们用的不多。   AD:模拟量转换数字量(模拟信号转换数字信号)。   ADC:模拟量转数字量的转换器。   为什么需要AD呢?   自然界宏观的物理量都是连续的。而机器识别的信号0与1是离散的。为了让机器能够采集、分析、储存这些连续的量,所以要把需要被模拟的量转换为数字量。   主要的参数:采样精度与转换速度。   采样精度,也叫作分辨率。如果0
原创 2023-01-11 12:14:03
3344阅读
重定向int fputc(int ch, FILE *f){ H
原创 2023-05-29 01:41:42
655阅读
  借助DMA可以快速采集大量数据,如果数据采集过来却不使用就是浪费。在我的板子上,AD值代表温度,如果系统检测到温度过高,可能会采取一些强制的保护措施。而AD采样是容易受干扰的,所以要对采样数据进行滤波,减少噪声对系统的干扰。接下来我们采用计算平均值的算法来滤波。   我们从每256个数据中,提取出1个算数平均值。2个通道,每个通道采集256个数据的话,共需要采集512个数据。由于DMA转换数据
原创 2023-01-11 12:14:06
234阅读
STM32三种的类型:ST已经推出了三种库函数,以方便客户快速开发STM32系列MCU。从15、16年开始,ST逐渐停止了对标准外设的更新和维护,转向了HAL和LL。(1) 标准外设驱动SPL                     Standard Peripheral Li
HAL系列教程,持续更新中,欢迎关注小飞哥,本期ADC+DMA多通道采集,欢迎star~
原创 2022-03-07 15:41:10
2690阅读
HAL_I2C_Mem_Write()函数位于stm32fxx_hal_i2c.c文件的2432行,源代码对该函数的解释如下图HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pDat
ST7789驱动程序移植,标准HAL STM32F407 原因课设项目用到了ST7789这款lcd,但是官方给的例程都是标准,在网上也没有找到HAL的驱动。所以自己移植一下,使用STM32Cubeide首先新建项目,打开SPI1,需要更改的地方如下   关于引脚如何配置,这里参考一下原例程,PG12和PD5为SPI
转载 2024-07-02 22:08:49
0阅读
开发环境MCU:STM32F103c8t6 开发工具:STM32CubeMX 使用板子参考原理图:STM32F103C8T6最小系统板开源链接PWM脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但宽度不一致的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出
海思I2C总线操作 1.使用I2C命令: i2c_write <i2c_num> <device_addr> <reg_addr> <value> <reg_width> <data_width> i2c_read <i2c_num> <device_addr> <reg_addr> &lt
转载 2024-10-25 22:46:14
353阅读
通过DMA+ADC的高效整合,开发者可以实现低CPU占用率的模拟信号采集系统。合理配置ADC的扫描模式与DMA循环传输。利用HAL的中
        本人自己想做一个项目,做到AHT10获取温湿度时,由于开发经验不足,在网上不断查找资料,但都没有完整详细的步骤讲解,在此卡了好几天。经历几天的摸索,最终一步步实现软件模拟IIC通讯,读取AHT10温湿度数据。在此做个记录分享,给跟我一样的初学者们一点借鉴。    &nbsp
转载 2024-10-12 17:47:43
207阅读
 我们在使用嵌入式功能开发的时候经常需要使用按键实现一些功能。按键一般接触较多的就是独立按键,但一般情况上会需要多个按键,使用独立按键就会使得IO口资源浪费;因此会提出使用矩阵按键,该方法是可以实现节省IO口;本次介绍使用ADC实现多按键功能,通过采集ADC不同的值,然后判断是按键几按下?因此要求完成功能:实现一个ADC口完成对八个按键的检测,识别按键几按下,并将结果通过串口到串口助手上
转载 2024-04-02 13:48:41
136阅读
一、常用DMA库函数1.DMA初始化(包括通道和参数配置)void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct);下面就是结构体参数typedef struct { uint32_t DMA_PeripheralBaseAddr; //外设基地址 uint32_t DMA_Memo
转载 8月前
651阅读
1.I2C函数中HAL_I2C_Mem_Write和HAL_I2C_Master_Transmit有啥区别?{使用HAL_I2C_Mem_Write等于先使用HAL_I2C_Master_Transmit传输第一个寄存器地址,再用HAL_I2C_Master_Transmit传输写入第一个寄存器的数据。HAL_I2C_Mem_Write一样可以传输多个数据,有一个参数设置数据大小。在传输过程,寄存
  • 1
  • 2
  • 3
  • 4
  • 5