电子发烧友网 > 控制/MCU > 正文

STM32单片机的USART接收数据问题解决方案

2018年12月06日 15:36 次阅读

先使用USART中断函数接收数据,判断是否接收到每帧数据的起始标记字符。如果接收到就关闭USART中断,然后开启DMA用于后续串口数据的接收。但是出现一个问题是每帧数据的起始标记为:A5 4A 05 00 00 40 81

然后开启DMA传输后所接收收到的第一个数据为0x81,也就是起始标志字符的最后一个数据。

STM32单片机的USART接收数据问题解决方案

造成这样问题的原因是:

在USART初始化时使用了函数:USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);

虽然此时DMA没有被使能,但是硬件上已经开始做DMA传输检测了。

解决办法:

将函数:USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);从串口初始化函数中删除掉,然后和使能DMA传输函数放在一起。这样就成功解决问题了。

技术专区

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

如何构建STM32单片机keil的开发环境

在工程文件下,新建Startup、Headers、User、Libraries、CMSIS、List...

发表于 2018-12-05 14:52 47次阅读
如何构建STM32单片机keil的开发环境

请问stm32l073的四个串口的usart4和usart5如何同时使用?

发表于 2018-12-05 08:43 66次阅读
请问stm32l073的四个串口的usart4和usart5如何同时使用?

STM32单片机USB速度慢的原因解析

全速的USB设备,最大速度12Mb/s,但是如果跑的是HID之类慢速设备的协议,那么速度就没有那么快...

发表于 2018-12-04 15:06 94次阅读
STM32单片机USB速度慢的原因解析

STM32单片机的EXIT中断解析

工程概要说明:定义一个按键(可自己定义),每按键一次,响应中断一次,在中断函数中LED提示灯变化一次...

发表于 2018-12-04 15:04 64次阅读
STM32单片机的EXIT中断解析

STM32单片机GPIO寄存器的功能解析

对于GPIO端口,每个端口有16个引脚,每个引脚的模式由寄存器的四个位控制,每四位又分为两位控制引脚...

发表于 2018-12-04 14:54 84次阅读
STM32单片机GPIO寄存器的功能解析

DMA读取未恢复的DDR空间不能正常工作

发表于 2018-12-04 13:41 21次阅读
DMA读取未恢复的DDR空间不能正常工作

请问STM32的GPIO中断开启DMA读取数据发生移位怎么解决?

发表于 2018-12-04 08:49 124次阅读
请问STM32的GPIO中断开启DMA读取数据发生移位怎么解决?

DMA的普通模式,在中断里面又重新开启传输,为什么后面的值一直不更新了

发表于 2018-12-04 08:48 103次阅读
DMA的普通模式,在中断里面又重新开启传输,为什么后面的值一直不更新了

请问HAL库中用DMA方式使用串口,串口中断用开吗?

发表于 2018-12-04 08:48 89次阅读
请问HAL库中用DMA方式使用串口,串口中断用开吗?

请问HAL_UART_Receive_DMA函数的具体功能是什么?

发表于 2018-12-04 08:47 157次阅读
请问HAL_UART_Receive_DMA函数的具体功能是什么?

请问ADSP-21489怎么实现DMA功能?

发表于 2018-12-03 16:10 26次阅读
请问ADSP-21489怎么实现DMA功能?

STM32单片机对ADS1246芯片的驱动

ADS1246的SPI时序,这个是需要提一下的,一般来说,SPI协议在上升沿锁存数据,下降沿更新数据...

发表于 2018-12-03 14:39 89次阅读
STM32单片机对ADS1246芯片的驱动

STM32单片机的can总线的配置

CAN_InitStructure.CAN_TTCM=DISABLE;//禁止时间触发通信模式 ...

发表于 2018-12-03 14:31 102次阅读
STM32单片机的can总线的配置

STM32单片机的SYSTick定时器的设置

SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时...

发表于 2018-12-03 14:27 55次阅读
STM32单片机的SYSTick定时器的设置

STM32单片机FSMC的使用解析

LCD有如下控制线: CS:Chip Select片选,低电平有效 RS:Registe...

发表于 2018-12-03 14:17 58次阅读
STM32单片机FSMC的使用解析

请问wave文件是单声道8bit的文件,怎么配置DMA呢?

发表于 2018-12-03 08:53 67次阅读
请问wave文件是单声道8bit的文件,怎么配置DMA呢?

STM32单片机如何实现规则多通道转换

DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR...

发表于 2018-11-30 16:22 99次阅读
STM32单片机如何实现规则多通道转换

STM32单片机的断言机制函数assert_pa...

这个宏定义的作用就是检查参数PERIPH,判断参数PERIPH是否为GPIOX(A.。.G)基址中的...

发表于 2018-11-30 16:10 97次阅读
STM32单片机的断言机制函数assert_pa...

如何采用STM32单片机实现SPI的驱动

void SPI_cfg(void){ SPI_InitTypeDef SPI_InitStr...

发表于 2018-11-30 15:56 93次阅读
如何采用STM32单片机实现SPI的驱动

STM32单片机对红外接收系统的设计

红外接收头一般是接收、放大、解调一体头,一般红外信号经接收头解调后,数据“0”和“1”的区别通常体现...

发表于 2018-11-30 15:32 86次阅读
STM32单片机对红外接收系统的设计

STM32单片机的IAP向量问题解决方案

// 1:复制用户代码中的中断向量表到SRAM首地址 // 2: 开启SRAM的重映射功能,将...

发表于 2018-11-30 15:24 82次阅读
STM32单片机的IAP向量问题解决方案

STM32单片机的ADS1115通过模拟I2C驱...

收获:对于I2C通信协议的理解更加深刻,对ADS1115也能进行单通道的使用。I2C的开始、发送/读...

发表于 2018-11-29 16:49 83次阅读
STM32单片机的ADS1115通过模拟I2C驱...

STM32单片机SPI的使用原理解析

GPIO_InitTypeDef GPIO_InitStructure; //配置SPI2管脚...

发表于 2018-11-29 16:35 75次阅读
STM32单片机SPI的使用原理解析

STM32单片机重映射USART设计

外部中断(EXTI)中与AFIO有关的寄存器是AFIO-EXTICR1、2、3,它们是用来选择EXT...

发表于 2018-11-29 16:27 63次阅读
STM32单片机重映射USART设计

STM32单片机的ADC多通道采样

这里使用的是3362电位器(10K),即用STM32来测量PB0和GND两端的电压,这样的电路设计比...

发表于 2018-11-29 16:12 89次阅读
STM32单片机的ADC多通道采样

STM32单片机的CPU运行性能的算法测试

此算法是基于操作系统的,理论上不限于任何操作系统,只要有任务调度就可以。本文将以FreeRTOST为...

发表于 2018-11-29 16:01 280次阅读
STM32单片机的CPU运行性能的算法测试

STM32中的DMA的实际应用

直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过...

发表于 2018-11-29 15:49 87次阅读
STM32中的DMA的实际应用

SPC56EL怎么使用FlexPWM DMA功能

发表于 2018-11-29 10:28 50次阅读
SPC56EL怎么使用FlexPWM DMA功能

使用DMA和I2C读取\写入LIS2DH12

发表于 2018-11-29 10:23 58次阅读
使用DMA和I2C读取\写入LIS2DH12

如何将STM32单片机的JTAG口作为GPIO使...

针对F4系列,STM32F4库函数中,已经取消了GPIO_*PinRemapConfig()函数,对...

发表于 2018-11-28 16:43 83次阅读
如何将STM32单片机的JTAG口作为GPIO使...

STM32单片机的usb上电和断电函数的定义

usb_pwr.c 这个文件看文件名就知道跟功耗有关了,有很多的状态:上电、掉电、挂起、恢复。

发表于 2018-11-28 16:35 88次阅读
STM32单片机的usb上电和断电函数的定义

STM32单片机对CAN过滤器的设置方法

在使用STM32的CAN控制器进行数据收发,当用到位屏蔽模式的时候,就要设置过滤器了,这个关系到是否...

发表于 2018-11-28 16:25 83次阅读
STM32单片机对CAN过滤器的设置方法

如何通过STM32驱动nRF24L01发送数据

最近在一个项目中用到了nRF24L01这个无线2.4G收发芯片,项目中有主机和分机,默认都是使用数据...

发表于 2018-11-28 15:53 74次阅读
如何通过STM32驱动nRF24L01发送数据

STM32单片机ADC的模拟看门狗的测试

ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LT...

发表于 2018-11-27 16:49 95次阅读
STM32单片机ADC的模拟看门狗的测试

STM32单片机对正交编码器的驱动

STM32正交编码器驱动,引入(突变)带进位的位置环和速度环

发表于 2018-11-27 16:12 58次阅读
STM32单片机对正交编码器的驱动

如何利用STM32单片机发送字符串

一、STM32有自己的字符发送函数。 void PC_SendChar(uint8_t Dat...

发表于 2018-11-26 15:26 85次阅读
如何利用STM32单片机发送字符串

基于STM32单片机的USB时钟配置设计

RCC_DeInit();//将外设RCC寄存器重设为缺省值 /*EnableHSE*/ ...

发表于 2018-11-26 15:20 80次阅读
基于STM32单片机的USB时钟配置设计

STM32单片机的低功耗模式待机唤醒设计

将程序下载到开发板上后,LED灯会不断地亮灭,当按下KEY2键超过3s时,LED灯灭,标志着单片机进...

发表于 2018-11-26 14:40 85次阅读
STM32单片机的低功耗模式待机唤醒设计

STM32定时器触发DMA数据传输失败的原因如何...

有人使用STM32的定时器事件触发DMA,让其将内存数据传输到通信外设的数据寄存器进行发送,发现DM...

发表于 2018-11-25 09:21 370次阅读
STM32定时器触发DMA数据传输失败的原因如何...

ARM Cortex-M3 MCU的I2C和DM...

在项目开发的过程中,发现程序总是死在判断DMA一次传输是否完成这个标志位上。进一步回退分析,发现是在...

发表于 2018-11-24 10:24 76次阅读
ARM Cortex-M3 MCU的I2C和DM...

STM32的ADC单次转换设计

//先配置IO口: ADC_InitTypeDef adcInitStruct; ///...

发表于 2018-11-23 15:40 84次阅读
STM32的ADC单次转换设计

STM32的ADC编程方法总结

这里的ADC转换也来使用DMA---这个也是STM32的ADC转换最常见的方式。 第一步是了解...

发表于 2018-11-23 15:30 159次阅读
STM32的ADC编程方法总结

STM32单片机在KIEL4配置开发中的设置

开发环境:KIEL4,芯片STM32F103VCT6。函数库VC3.5 1.配置开发环境。 2....

发表于 2018-11-23 15:01 68次阅读
STM32单片机在KIEL4配置开发中的设置

STM32单片机TIM模块定时器向上溢出的输出比...

首先有一点需要注意:FWLib固件库目前的最新版应该是V2.0.x,V1.0.x版本固件库中,TIM...

发表于 2018-11-22 16:20 99次阅读
STM32单片机TIM模块定时器向上溢出的输出比...

STM32单片机如何通过定时器的控制输出PWM

STM32F103ZET6里共有8个定时器,其中高级定时器有TIM1-TIM5、TIM8,共6个。 ...

发表于 2018-11-22 15:56 130次阅读
STM32单片机如何通过定时器的控制输出PWM

STM32单片机中RTC的秒中断的原理解析

RTC(Real Time Clock)是实时时钟的意思,它其实和TIM有点类似,也是利用计数的原理...

发表于 2018-11-21 15:59 124次阅读
STM32单片机中RTC的秒中断的原理解析

STM32单片机的Usart2串口的调试方法

先是参考http://wenku.baidu.com/view/78f6b1350b4c2e3f57...

发表于 2018-11-20 16:10 122次阅读
STM32单片机的Usart2串口的调试方法

如何使用STM32单片机设置PWM输出

环境: 主机:XP 开发环境:MDK4.23 MCU:STM32F103CBT6 ...

发表于 2018-11-20 16:03 162次阅读
如何使用STM32单片机设置PWM输出

STM32单片机实现外部中断的步骤及方法

和配置NVIC一样,这也是EXTI配置的一般步骤:清除相应中断线标志位(这个很重要,刚开始一直没找到...

发表于 2018-11-20 15:46 166次阅读
STM32单片机实现外部中断的步骤及方法

基于STM32单片机连接射频si4438模块的方...

SI4438射频模块参数: 1、频率范围:425-525MHz 2、数字接收信号强度指示...

发表于 2018-11-15 16:55 131次阅读
基于STM32单片机连接射频si4438模块的方...

基于STM32单片机的ADC与DMA配置的介绍与...

本文使用ADC转换电位器输出的电压值,并用DMA模式传输转换的结果,每8次采样转换取平均值,做一个简...

发表于 2018-11-15 16:05 260次阅读
基于STM32单片机的ADC与DMA配置的介绍与...

STM32单片机的5个时钟源解析

1. STM32的5个时钟源 a。高速内部时钟 HSI,大约为8MHz b。高速外部时钟...

发表于 2018-11-14 16:30 135次阅读
STM32单片机的5个时钟源解析

STM32单片机ILI9325系列TFT的驱动原...

为了更好,更深入学习了解ILI9325系列TFT的驱动原理,自己做了一块TFT板子。为了方便测试,在...

发表于 2018-11-14 15:53 144次阅读
STM32单片机ILI9325系列TFT的驱动原...

STM32单片机的系统定时器初始化设置

#include“stm32f10x_lib.h” unsigned char sys_nub...

发表于 2018-11-12 16:10 138次阅读
STM32单片机的系统定时器初始化设置

STM32单片机的外部中断和中断控制器的特点解析

在M3中有两个优先级的概念-抢占优先级和响应优先级。每一个中断源都必须指定这两种优先级。这里的中断抢...

发表于 2018-11-12 15:40 122次阅读
STM32单片机的外部中断和中断控制器的特点解析

STM32实现对RTC闹钟唤醒的设计

工程中用到低功耗的控制,本来想使用待机模式,后来发现待机后所有IO口为高阻态,这样对于一些IO口控制...

发表于 2018-11-12 15:31 168次阅读
STM32实现对RTC闹钟唤醒的设计

STM32单片机的重映射与地址映射的使用方法及步...

打开重映射时钟和USART重映射后的I/O口引脚时钟, RCC_APB2PeriphClock...

发表于 2018-11-12 15:04 186次阅读
STM32单片机的重映射与地址映射的使用方法及步...

基于STM32的八种GPIO输入输出模式解析

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,...

发表于 2018-11-09 16:32 180次阅读
基于STM32的八种GPIO输入输出模式解析

基于STM32单片机启动文件的作用和启动过程解析

bootloader 分为boot 和loader,更多的时候是针对于linux系统,windows...

发表于 2018-11-09 16:15 195次阅读
基于STM32单片机启动文件的作用和启动过程解析

STM32单片机UART发送配置的步骤及方法

字符发送的过程描述:在UART的发送过程中先将数据输入到发送数据寄存器中(TDR)此时(TXE)被硬...

发表于 2018-11-08 16:59 151次阅读
STM32单片机UART发送配置的步骤及方法

如何从STM32F030C8移植到GD32F13...

一、添加芯片类型判断程序: 在库中的启动代码前面加一段,读一下ID code,自动区分一下芯片...

发表于 2018-11-08 16:52 106次阅读
如何从STM32F030C8移植到GD32F13...

STM32F4发送和接收长度数据的判断

STM32F4 串口收发使用DMA还是很方便的。但是配置DMA时需要配置数据长度,这一点对于发送来说...

发表于 2018-11-08 16:25 146次阅读
STM32F4发送和接收长度数据的判断

基于STM32F4单片机USART寄存器控制的设...

USART又叫通用同步异步收发器,塔提供了一种灵活的方法与工业使用标准NRZ异步春航数据格式的外部设...

发表于 2018-11-07 16:30 96次阅读
基于STM32F4单片机USART寄存器控制的设...

STM32F103系列单片机中的定时器工作原理解...

STM32F103系列的单片机一共有11个定时器,其中: 2个高级定时器 4个普通定时器...

发表于 2018-11-07 16:30 172次阅读
STM32F103系列单片机中的定时器工作原理解...

如何用stm32使用LWIP网络协议栈实现DHC...

LWIP是一款开源的嵌入式网络协议栈,支持的功能很多,而且能在多任务环境下和单任务裸机环境下跑,今天...

发表于 2018-11-07 16:14 112次阅读
如何用stm32使用LWIP网络协议栈实现DHC...

STM32单片机的复用端口初始化的步骤及方法

STM32有好几个串口。比如说STM32F103ZET6有5个串口,串口1的引脚对应的IO为PA9,...

发表于 2018-11-07 16:06 129次阅读
STM32单片机的复用端口初始化的步骤及方法

STM32单片机如何进行中断调试

1、基本的GPIO配置,注意,因为需要用到普通IO口作为中断输入口,因此是用了IO口德复用功能,因此...

发表于 2018-11-05 16:05 212次阅读
STM32单片机如何进行中断调试

如何调整STM32单片机中flash与时钟速率之...

void Flash_Init(void) { // 调整flash与时钟速率之间的关系...

发表于 2018-11-05 16:05 140次阅读
如何调整STM32单片机中flash与时钟速率之...

基于STM32单片机的端口复用与端口重映射

对于双向复用功能,必须配置为复用功能输出模式(推挽或者开漏),此时输入驱动器配置为浮空输入模式。 ...

发表于 2018-11-05 15:54 122次阅读
基于STM32单片机的端口复用与端口重映射

基于AVR单片机USART与PC机的串行通信

USART 分为了三个主要部分: 时钟发生器,发送器和接收器。控制寄存器由三个单元共享。时钟发生器包...

发表于 2018-11-05 15:42 103次阅读
基于AVR单片机USART与PC机的串行通信