STM32
直播中

王浩

8年用户 1417经验值
私信 关注
[问答]

stm32h743iit6使用usb怎么配置dma搬运?

目前用的是STM32h743iit6。在配置usb的界面看到了
但是生成的代码里面没有看到类似dma的字眼。是我配错了吗?

回帖(1)

张玲

2024-7-2 17:08:03
STM32H743IIT6是一款基于ARM Cortex-M7内核的微控制器,具有丰富的外设和较高的性能。在使用USB时,可以通过配置DMA(Direct Memory Access)来提高数据传输效率。以下是配置STM32H743IIT6使用USB和DMA的步骤:

1. 打开STM32CubeMX软件,选择您的目标微控制器型号(STM32H743IIT6)。

2. 在配置界面中,选择“Clock Configuration”(时钟配置),确保USB时钟已正确配置。通常,USB时钟源可以选择PLL,确保PLL输出频率满足USB要求(48MHz)。

3. 接下来,在“Project Manager”(项目管理器)中,选择“Project”(项目),然后点击“Project Settings”(项目设置)。

4. 在“Project Settings”窗口中,选择“MCU/CPU”选项卡,确保“Use HAL Library”(使用HAL库)已勾选。

5. 现在,我们需要配置USB。在“Project Manager”中,选择“Middlewares”(中间件),然后选择“ST”文件夹下的“STM32 USB Device Library”(STM32 USB设备库)。

6. 在“STM32 USB Device Library Configuration”(STM32 USB设备库配置)窗口中,选择您需要的USB设备类型(如CDC、HID等),并配置相应的参数。

7. 接下来,我们需要配置DMA。在“Project Manager”中,选择“Middlewares”(中间件),然后选择“ST”文件夹下的“STM32 HAL/LL Drivers”(STM32 HAL/LL驱动)。

8. 在“STM32 HAL/LL Drivers Configuration”(STM32 HAL/LL驱动配置)窗口中,选择“DMA”选项卡,然后勾选“Enable DMA”(启用DMA)。

9. 选择您需要使用的DMA通道和请求。例如,如果您使用的是USB FS DMA,可以选择“DMA1_Stream5”作为DMA通道,选择“DMA_REQUEST_USART6_RX”作为请求。

10. 点击“OK”以保存配置,然后点击“GENERATE CODE”(生成代码)以生成项目代码。

11. 在生成的代码中,您应该能看到与DMA相关的配置和初始化代码。例如,在“usbd_conf.c”文件中,您可以找到以下代码:

```c
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
```

在这两个注释之间,您可以添加DMA相关的配置代码。

12. 在您的应用程序代码中,使用HAL库函数来初始化和配置DMA。例如,您可以使用`HAL_DMA_Init()`、`HAL_DMA_Start()`等函数来配置DMA。

通过以上步骤,您应该能够成功配置STM32H743IIT6使用USB和DMA。如果在生成的代码中没有看到DMA相关的字眼,可能是因为某些配置步骤没有正确完成。请检查您的配置并确保所有必要的选项都已勾选。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分