一、查询模式1.二、中断模式1.中断接收。1.1先看中断接收的流程(以 USART2 为例)在启动文件中找到中断向量USART2_IRQHandler找到USART2_IRQHandler的函数定义 可以看到这里又转到另一个函数里去了,再找下去:该函数的源码:/** * @brief This function handles UART interrupt request. *
转载 2024-05-05 22:23:36
210阅读
http://www.cnblogs.com/FORFISH/p/5188833.html DMA-2440 首先在前面的实例中,在dev文件夹下增加dma.c文件,然后把它加入到该目录的Makefile里面: 这样就框架就好了,接下来打开dma.c来实现: 首先打开2440的芯片手册: 我们要操作
转载 2016-11-07 12:47:00
52阅读
1. 定义UART(Universal Asynchronous Receiver/Transmitter),即通用异步收发传输器,是一种异步收发传输器。具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追加同步方式的序列信号变换电路的产品,被称为USA
串口的发送接收函数:HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制。HAL_UART_Receive();串口轮询模式发送,使用超时管理机制。HAL_UART_Transmit_IT();串口中断模式发送,HAL_UART_Receive_IT();串口中断模式发送HAL_UART_Transmit_DMA();串口DMA模式发送HAL_UART_Receive_DMA
转载 2019-12-09 22:09:00
209阅读
2评论
文章目录一、DMA介绍1.DMA的基本定义2.DMA传输方式3.DMA传输原理4.DMA的主要特征5.DMA工作原理框图二、通过STMCude生成芯片代码1.设置RCC2.设置USART(串口)3.DMA设置(1)DMA基础设置4.时钟设置5.创建项目,生成代码三、调制keil代码四、通过FlyMcu进行烧录五、结果展示 一、DMA介绍1.DMA的基本定义DMA(Direct Memory Ac
今天翻出之前的USART学习总结,  重温STM32 的 USART 接收处理,然后根据使用更新一些资料。 实验环境:STM32F429IG(魔女开发板) + Keil_5.27 + 寄存器操作实验效果如下USART 的两种数据接收方式1:RENE - 非空中断最常用!代码简单!但数据处理时稍麻烦,常配合简单的数据协议,如判断某
UART1_IDLE_DMA 是什么
原创 2023-11-22 12:14:56
186阅读
1、串口的使用方法在hal库中,有三个串口发送的函数a、HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pD...
转载 2019-10-20 13:46:00
794阅读
2评论
接着上一篇关于STM32H7串口收发问题,继续说,上一篇里边提供了中断接收方式,最大的缺点就是中断过于频繁,为了解决这个问题那就把DMA搬过来,它不就是专门搬用数据的嘛,不用多可惜。首先我们需要大致了解,DMA和外设传送数据,例如串口,我们希望,当一帧数据接收完毕了,有个东西告诉主程序,串口接收到了一帧n个字节的数据存在某个地方,接收过程中你丫别打搅我。DMA就能胜任这个工作,他可以以中断的形式告
#ifndef USER_COMFIFO_H #define USER_COMFIFO_H #include "stm32f4xx_hal.h" #define RINGBUFF_LEN 512 typedef struct { uint16_t Head; uint16_t Tail; uint1
转载 2021-06-15 10:34:00
501阅读
2评论
初始化首先讲下UART的初始化1.声明UART的初始化结构体,并赋值2.MX生成的代码会调用HAL_UART_MspInit();来初始化UART,当然这个代码也是自动生成,不过用户可以在这个函数里面添加自己想要添加的操作,时面包括了NVIC_Configuration,DMA_Configuration等,也可以添加一些置位操作如__HAL_UART_ENABLE,__HAL_UART_ENAB
转载 2021-05-22 14:37:26
3549阅读
2评论
1、Cubemx配置2、实验目标单片机发送数据至串口:发送若干不同格式的数据至串口,在串口助手上显示。串口发送数据至单片机:单片机接收发送来的数据,判断后决定PC13引脚上指示灯的亮灭。3、代码编写(1)单片机发送数据至串口uint8_t byteNumberx=0x5a; uint8_t byteArray[]={1,2,3,4,5}; char ch='a'; char *str="He
原创 17天前
0阅读
1点赞
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
IMU-JY61P 是一款六轴惯性测量单元(IMU),集成了三轴加速度计和三轴陀螺仪,常用于姿态检测、运动跟踪、无人机导航、机器人控制等应用。其核心功能是通过传感器数据融合(如卡尔曼滤波)输出俯仰角(Pitch)、横滚角(Roll)和偏航角(Yaw)。Vofa+是一款开源的跨平台上位机软件,支持Windows、Linux和macOS系统,主要用于嵌入式开发中的数据可视化、调试和通信。
海思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阅读
开发环境MCU:STM32F103c8t6 开发工具:STM32CubeMX 使用板子参考原理图:STM32F103C8T6最小系统板开源链接PWM脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但宽度不一致的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出
1.定义了三种传输方式:阻塞传输,中断传输、DMA传输HAL_UART_Transmit;  HAL_UART_ReceiveHAL_UART_Transmit_IT;    HAL_UART_Receive_ITHAL_UART_Transmit_DMA;    HAL_UART_Receive_DMA此外还定义了两个中断回调函数,供中断和DMA
转载 2024-10-24 22:34:24
63阅读
DMA的作用是帮助CPU在内存之间搬运数据,搬运的过程中无需CPU的干涉,也不存在中断方式传送数据的那样保留现场和恢复现场的过程,这样的DMA控制器通过硬件来为RAM和IO设备之间开辟一条直接传送数据的通路(从源地址搬运到目的地址),从而使CPU的负担大大减少。 @目录DMA简介DMA有什么用数据从什么地方送到什么地方?DMA可以传递多少数据?外设的DM
        经过一段时间的学习,总结IDE环境的一些使用方法,纯属个人想法,多有不足,共享以讨论,望指正。HAL_UART_Transmit_DMA函数和HAL_UART_Receive_DMA函数即可完成对串口数据的收发。HAL_UART_Receive_DMA函数必须指定接收数据的长度,当接收端不知道接收数据情况时,当收到的数据未能达到接收数据长度时
        本人自己想做一个项目,做到AHT10获取温湿度时,由于开发经验不足,在网上不断查找资料,但都没有完整详细的步骤讲解,在此卡了好几天。经历几天的摸索,最终一步步实现软件模拟IIC通讯,读取AHT10温湿度数据。在此做个记录分享,给跟我一样的初学者们一点借鉴。    &nbsp
转载 2024-10-12 17:47:43
207阅读
  • 1
  • 2
  • 3
  • 4
  • 5