硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7100|回复: 5
收起左侧

[STM32CubeF4] 【STM32CubeF4教程】第四期:使用STM32CubeMX生成用于STM32-V5开发板的USART工程DM

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2015-3-14 12:13:32 | 显示全部楼层 |阅读模式
         第四期:使用STM32CubeMX生成用于STM32-V5开发板的USART工程DMA方式
本期教程使用STM32CubeMX生成可用于STM32-V5开发板的USART1的DMA方式的工程,通过本期教程让大家对STM32CubeMX设置DMA有个了解。
   1.1  STM32CubeMX生成USART工程DMA方式配置
   1.2  USART工程验证
   1.3  完整工程下载
*******************************************************************************************************************************************
1.1  STM32CubeMX生成USART工程DMA方式配置
      关于使用STM32CubeMX生成USART工程的方法已经在第二期教程中讲解了,这里就不再赘述了,重点说一下DMA配置。
第1步:点击USART1按钮
1.png

然后添加DMA
2.png

3.png

这里特别注意,要选中相应的DMA选项,才能配置DMA Request Settings里面的内容。
4.png

配置完成后点击OK即可。其实也可以通到DMA按键添加USART的DMA功能。
5.png

6.png

7.png

到这里,DMA部分就算设置完成了。
设置完记得点击OK进行保存。通过上面几部USART的DMA方式就算设置完了,剩下就是生产相应的工程,具体方法参考第2期教程。
1.2  USART工程验证
       STM32CubeMX生成的工程如下,这里没有选择生成独立的.C和.H文件:
8.png

生成工程后,用户只需添加简单的代码就可以通过开发板上面的串口打印数据,这里我们添加几行简单的代码
实现115200波特率连续发送字符串"www.armfly.com"
****************************************************************************************************

#include "stm32f4xx_hal.h"

/* 以下两行用户添加 */
#define RXBUFFERSIZE  16      
uint8_t aTxBuffer[] = "www.armfly.com\r\n";

UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma_usart1_tx;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_USART1_UART_Init(void);

int main(void)
{
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_USART1_UART_Init();

  /* 以下代码用户添加 */
  HAL_UART_Transmit_DMA(&huart1, aTxBuffer, sizeof(aTxBuffer));   
  while (1)
  {
      HAL_Delay(100);  
  }
}
****************************************************************************************************
添加完后,配置下工程下载选项就可以将代码下载到STM32-V5开发板运行,需要配置的位置
有如下几项:
9.png

10.png
配置好后,千万记得点击确定,这样就可以点击MDK上面的load图标下载到开发板。
11.png

下载后,复位开发板,然后USB转串口线连接PC机和开发板。PC机上运行SecureCRT软件,
波特率设置为 115200bps,无硬件流控。从PC机的软件界面观察程序执行结果,结果如下:
12.png



1.3 完整工程下载
usart_dmairq.zip (5.06 MB, 下载次数: 263)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2015-3-16 14:03:18 | 显示全部楼层
已经完成。
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2015-3-16 16:38:21 | 显示全部楼层
串口DMA操作有什么特殊的地方吗?我参照例程把串口1修改为串口4,一直无法发送饿接收数据,每次收发都是超时的, 但是单独操作串口4收发都正常,求救啊
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2015-3-16 16:38:50 | 显示全部楼层
跟我上次用SPI_DMA结果一样
回复

使用道具 举报

1

主题

33

回帖

36

积分

新手上路

积分
36
发表于 2015-3-17 08:10:51 | 显示全部楼层
不错,这样科技傻瓜化配置了,又可以偷懒了
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2015-6-19 22:28:40 | 显示全部楼层
学习了,不错.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 06:39 , Processed in 0.176642 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表