1 void _UART2_Configuration(void)
2 {
3 USART_InitTypeDef USART_InitStructure;
4
5 USART_OverSampling8Cmd(USART2, ENABLE);
6 USART_InitStructure.USART_BaudRate = 19200;
7 USART_InitStructure.USART_WordLength = USART_WordLength_8b;
8 USART_InitStructure.USART_StopBits = USART_StopBits_1;
9 USART_InitStructure.USART_Parity = USART_Parity_No;
10 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
11 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
12 USART_Init(USART2, &USART_InitStructure);
13
14 USART_DMACmd(USART2, USART_DMAReq_Rx, ENABLE);
15
16 DMA_Cmd(DMA1_Stream5, ENABLE);
17
18 USART_Cmd(USART2, ENABLE);
19 }
20
21 void _DMA_Configuration(void)
22 {
23 DMA_InitTypeDef DMA_InitStructure;
24  DMA_InitStructure.DMA_Channel = DMA_Channel_4;
25 DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&(USART2->DR);
26 DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)_Compass_Value;
27 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
28 DMA_InitStructure.DMA_BufferSize = 3;
29 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
30 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
31 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
32 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
33 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
34 DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
35 DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
36 DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
37 DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
38 DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
39 DMA_Init(DMA1_Stream5, &DMA_InitStructure);
40
41 /* DMA2_Stream0 enable */
42 DMA_Cmd(DMA1_Stream5, ENABLE);
43 }

STM32F4库函数初始化系列:DMA串口接收的更多相关文章

  1. STM32 串口DMA方式接收(转)

    STM32 是一款基于ARM Cortex-M3内核的32位MCU,主频最高可达72M.最近因为要在车机上集成TPMS功能, 便开始着手STM32的开发工作,STM32F10x系列共有5个串口(USA ...

  2. STM32串口接收不定长数据原理与源程序(转)

    今天说一下STM32单片机的接收不定长度字节数据的方法.由于STM32单片机带IDLE中断,所以利用这个中断,可以接收不定长字节的数据,由于STM32属于ARM单片机,所以这篇文章的方法也适合其他的A ...

  3. stm32的串口接收字符串以十六进制数

      #include "pbdata.h"   uint8_t TxBuffer1[] = "USART Interrupt Example: This isUSART1 ...

  4. STM32 HAL库使用中断实现串口接收不定长数据

    以前用DMA实现接收不定长数据,DMA的方法接收串口助手的数据,全部没问题,不过如果接收模块返回的数据,而这些数据如果包含回车换行的话就会停止接收,例如接收:AT\r\nOK\r\n,就只能接收到AT ...

  5. AVR单片机教程——串口接收

    本文隶属于AVR单片机教程系列.   上一讲中,我们实现了单片机开发板向电脑传输数据.在这一讲中,我们将通过电脑向单片机发送指令,让单片机根据指令控制LED.这一次,两端的TX与RX需要交叉连接,单片 ...

  6. STM32 ucosii 串口接收数据 遇到的问题及解决思路

    写一个程序,用到了ucos ii ,串口在中断中接收数据(一包数据 8个字节 包含: 1byte包头 5byte数据 1byte校验和 1byte 包尾 ) ,数据由上位机每隔500ms发送一次,在串 ...

  7. 基于Verilog的带FIFO输出缓冲的串口接收接口封装

    一.模块框图及基本思路 rx_module:串口接收的核心模块,详细介绍请见“基于Verilog的串口接收实验” rx2fifo_module:rx_module与rx_fifo之间的控制模块,其功能 ...

  8. [转]C# serialPort 串口接收中this.Invoke的使用

    本文转自:https://blog.csdn.net/hjk216/article/details/72677596 转载地址:http://www.ciast.net/post/20160752.h ...

  9. 基于Verilog的串口接收程序

    一.模块框图及基本思路 detect_module:检测输入引脚的下降沿,以此判断一帧数据的开始 rx_bps_module:波特率时钟产生模块 rx_control_module:串口接收的核心控制 ...

  10. 2018最新mfc作为上位机接收硬件端USB或串口数据显示成图片 解决串口接收数据丢字节丢包问题

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9490616.html 本文用的是VS2013MFC写串口数据接收: 第一步:首先建立一个MFC ...

随机推荐

  1. 用最少的代码模拟gRPC四种消息交换模式

    我们知道,建立在HTTP2/3之上的gRPC具有四种基本的通信模式或者消息交换模式(MEP: Message Exchange Pattern),即Unary.Server Stream.Client ...

  2. i春秋broken

    点开一个附带超链接的网页,直接点击file跳转到broken网页 网页里面是一个jsfuck代码 Jsfuck代码的执行方法 ①复制 ②打开firefox浏览器 ③按下F12 ④选择上方的控制台 ⑤在 ...

  3. Python中内置数据库!SQLite使用指南! ⛵

    作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 本文地址:https://www.showmeai.tech ...

  4. Kafka教程(一)基础入门:基本概念、安装部署、运维监控、命令行使用

    Kafka教程(一)基础入门   1.基本概念   背景   领英->Apache   分布式.消息发布订阅系统   角色   存储系统   消息系统   流处理平台-Kafka Streami ...

  5. 详解 Redis 中 big keys 发现和解决

    在使用 Redis 时,可能会出现请求响应慢.网络卡顿.数据丢失的情况.排查问题的时候,发现是 big keys 的问题. 什么是 big keys 在 Redis 中,一个字符串类型最大可以达到 5 ...

  6. 踩坑记录:Redis的lettuce连接池不生效

    踩坑记录:Redis的lettuce连接池不生效 一.lettuce客户端 lettuce客户端 Lettuce 和 Jedis 的都是连接Redis Server的客户端程序.Jedis在实现上是直 ...

  7. Java/JDK各版本主要特性汇总

    目录 Java18(2022.3) Java17(2021.9)(LTS版本) Java16(2021.3) Java15(2020.9) Java14(2020.3) Java13(2019.9) ...

  8. 关于Window中右键新建菜单的设置

    在日常工作中,有时候需要根据自己的需要对Windows桌面右键新建菜单进行自定义,自定义的方法如下: 1.在Window中输入Win+R调出运行命令框 2.输入regedit,打开注册表 3.如果想要 ...

  9. day04-Vue01

    Vue01 1.Vue是什么? Vue(读音/vju:/,类似于view)是一个前端框架,依据构建用户界面 Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或者项目整合 支持和其他类库结合使 ...

  10. python进阶之路9文件的处理方法

    内容回顾 字典内置方法 1.类型转换 dict() 2.重要操作 get() d[key] = values 常用 pop() update() 键存在则修改键值对 键不存在则新增键值对 fromke ...