datasheet

STM32串口DMA传输不能使用的问题

2019-06-14来源: eefocus关键字:STM32  串口  DMA传输

1. 开发环境

开发平台:官方开发板STM32F030R8-Nucleo

开发软件:Keil uVision5.24

开发库:STM32Cube_FW_F0_V1.9.0


2. 实验现象

根据官方例程,将UART1的DMA传输配置更改为UART2,但是使用UART2时,DMA的中断都进入不了,一开始以为是时钟未开启导致的,后来仔细对比后并无异常。于是查看了STM32F030的参考手册,DMA这一章,发现DMA的通道固定映射到相应的外设上,而不能随意配置。



我这里使用的是UART2,从上面的 mapping 图中可以看出UART2_TX只能使用 Channel4,UART2_RX只能使用 Channel5。所以我们在使用DMA通道时,一定要先查阅相应单片机DMA通道分配图,然后再选择配置相应的通道。


现在ST主推HAL库,使用该库时能够使用CubeMX生成引脚配置的代码,使用CubeMX配置引脚时,能够有效的避免不熟悉芯片导致配置出错的问题。


关键字:STM32  串口  DMA传输

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/ic464674.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32定时器的预装寄存器以及影子寄存器话题
下一篇:STM32F030R8-Nucleo使用PA2、PA3 UART2不能使用的问题

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32 FSMC 外部使用SRAM

数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。SRAM怎么用:使用STM32的FSMC功能,将SRAM映射为单片机的的内部地址,进行指针操作。图中 A0~A18为地址线(即 2^19=512K,1K=1024); IO0~15 为数据线,总共 16根数据线, CS2 和 CS1 都是片选信号,不过 CS2 是高电平有效CS1 是低电平有效; OE 是输出使能信号( 读信号); WE 为写使能信号; UB 和LB 分别为高字节控制和低字节控制信号。 (1)FSMC-外部SRAM 编程流程分析
发表于 2019-06-17
STM32 FSMC 外部使用SRAM

STM32F042 基于CubeMX HAL库CAN的配置

"stm32f0xx_hal.h" CAN_HandleTypeDef hcan;  CAN_FilterConfTypeDef  sFilterConfig;static CanTxMsgTypeDef        TxMessage;static CanRxMsgTypeDef        RxMessage; void SystemClock_Config(void);static void MX_GPIO_Init(void);static void
发表于 2019-06-17
STM32F042 基于CubeMX HAL库CAN的配置

STM32F407 SPI flash

STM32F407 SPI接口:STM32F4XX时钟计算HCLK=168M PCLK1 =HCLK/4 =42M PCLK2 =HCLK/2 =84MSPI2、SPI3在PCLK1,最大时钟为42MSPI1在PCLK2,最大时钟为84MSTM32F4 支持的最大SPI时钟为37.5Mbits/s 因此需要分频。例程选择SPI2 分频后为21M串行Flash W25Q64BVSSIG (最高支持80MHz)。测试:全部写入0XAA 数据长度8192K 擦除:20.798 写入耗时42.599S 读:9.008S百度的参照时间擦除:8.9S 写入22.5S 读出 1.8S  校验时间1.8S 芯片特点
发表于 2019-06-17
STM32F407 SPI flash

STM32F4 USART1 TX RX FIFO

。***********************************************************************************************************///#include "stm32f4xx.h"#include "bspdebug_usartbsp_debug_uart.h"#include "bsp.h"#include <stdio.h>#define  debug_uart_tx_buf_size  1*1024#define  debug_uart_rx_buf_size  1*1024static uint8_t g_TxBuf
发表于 2019-06-17

STM32 SRAM内存管理

; 者: 硬石嵌入式开发团队  * 版    本: V1.0  * 编写日期: 2015-10-04  * 功    能: 动态内存分配管理实现  ******************************************************************************  * 说明:  * 本例程配套硬石stm32开发板YS-F1Pro使用。  *   * 淘宝:  * 论坛:http://www.ing10bbs.com  *  
发表于 2019-06-17

STM32F03开发板--系统时钟设置SysTick

首先我先分析下startup_stm32f0xx.s启动代码,其中/* Call the clock system intitialization function.*/  bl  SystemInit/* Call the application's entry point.*/  bl main发现开发板上电启动过程中,先调用了SystemInit()函数,再进入main()函数。SystemInit()函数在文件system_stm32f0xx.c中,它的作用是设置系统时钟SYSCLK。下面是SystemInit()源码:void SystemInit (void){ 
发表于 2019-06-17
STM32F03开发板--系统时钟设置SysTick

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved