STM32F4学习(四)——Usart+DMA

上一篇是STM32F4的初级例程,主要就是对GPIO的操作。接下来要进行的就是Usart了,有时候我把想把某些中间量或者其他程序状态信息打印出来显示在电脑上,那么这是串口的作用就可想而知了。

STM32F407xx内嵌四个通用同步/异步接收器​​(USART1,USART2,USART3 和USART6)和两个通用异步收发器(UART4和UART5)。这6个接口提供异步通信的IrDASIR ENDEC支持,多机通信模式,单线半双工通信模式LIN主/从功能。 USART1和USART6接口能够速度高达10.5 Mbit / s的通信其他可用的接口通信高达5.25bit/s。USART1,USART2,USART3和USART6还提供硬件管理的CTS,RTS信号,智能卡的模式(ISO7816兼容)和类似的SPI通信能力。所有接口都可以通过DMA控制器。

这里我使用了两个线的最简单串口设置。

首先第一步就是串口初始化,配置Usart的GPIO、工作模式

/*************************************************************************************
 * 函数名: USART2_Config
 * 描述  : USART2 GPIO、工作模式的配置
 * 输入  : 无
 * 输出  : 无
 * 批注  : PA2->TX PA3->RX
*************************************************************************************/
void USART2_Config(void)
{
  GPIO_InitTypeDef   GPIO_InitStructure;   //初始化GPIO结构体
  USART_InitTypeDef  USART_InitStructure;  //初始化Usart结构体
	
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);   //使能GPIOA的时钟
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);   //使能USART2的时钟
	
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_USART2);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_USART2);
	
	/* 配置USART2的GPIO */
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  GPIO_InitStructu
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
STM32F4系列微控制器具有强大的USART功能,可利用DMA(直接存储器访问)实现高效的数据传输。USART(通用同步/异步收发传输器)是一种广泛应用于串行通信的接口,可以实现与其他设备(例如传感器、显示器、无线模块等)之间的数据交换。 要在STM32F4上使用USARTDMA,您需要进行以下步骤: 1. 配置USART:首先,您需要配置USART的参数,例如波特率、数据位数、停止位等。您可以使用STM32的CubeMX软件工具来快速生成初始化代码,并将其导入到您的项目中。 2. 初始化DMA:接下来,您需要初始化DMA控制器,以便在USART和存储器之间进行数据传输。您可以选择使用中断或轮询模式来处理DMA传输完成的事件。 3. 启用USARTDMA:在配置好USARTDMA后,您需要启用它们以开始数据传输。通过启用USART和相关的DMA通道,您可以将数据从存储器发送到USART或从USART接收到存储器。 4. 数据传输:一旦USARTDMA已配置和启用,您可以开始进行数据传输。您可以使用DMA的内存到外设(M2P)或外设到内存(P2M)传输模式,具体取决于您的需求。 5. 处理数据:一旦数据传输完成,您可以在接收端或发送端进行相应的数据处理。您可以使用中断或DMA传输完成的回调函数来通知您的应用程序。 请注意,以上步骤是一般性的指导,具体的配置和实现方式可能会根据您的具体需求和使用的开发工具而有所不同。建议参考STM32F4系列的参考手册和相关的应用笔记,以获取更详细的信息和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值