1775|13

2870

帖子

4

TA的资源

五彩晶圆(中级)

楼主
 

STM32Cube配置STM32U5Axxx芯片不生成GPDMA1初始化代码 [复制链接]

 

需要配置DMA配合TIM8定时器输出PWM的功能,配置完成后发现工具没有生成任何代码。

/**
  * [url=home.php?mod=space&uid=159083]@brief[/url] GPDMA1 Initialization Function
  * @param None
  * @retval None
  */
static void MX_GPDMA1_Init(void)
{

  /* USER CODE BEGIN GPDMA1_Init 0 */

  /* USER CODE END GPDMA1_Init 0 */

  /* Peripheral clock enable */
  __HAL_RCC_GPDMA1_CLK_ENABLE();

  /* GPDMA1 interrupt Init */
    HAL_NVIC_SetPriority(GPDMA1_Channel0_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(GPDMA1_Channel0_IRQn);

  /* USER CODE BEGIN GPDMA1_Init 1 */
  
  /* USER CODE END GPDMA1_Init 1 */
  /* USER CODE BEGIN GPDMA1_Init 2 */

  /* USER CODE END GPDMA1_Init 2 */

}

/**
  * @brief ICACHE Initialization Function
  * @param None
  * @retval None
  */
static void MX_ICACHE_Init(void)
{

  /* USER CODE BEGIN ICACHE_Init 0 */

  /* USER CODE END ICACHE_Init 0 */

  /* USER CODE BEGIN ICACHE_Init 1 */

  /* USER CODE END ICACHE_Init 1 */

  /** Enable instruction cache in 1-way (direct mapped cache)
  */
  if (HAL_ICACHE_ConfigAssociativityMode(ICACHE_1WAY) != HAL_OK)
  {
    Error_Handler();
  }
  if (HAL_ICACHE_Enable() != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN ICACHE_Init 2 */

  /* USER CODE END ICACHE_Init 2 */

}

/**
  * @brief LPUART1 Initialization Function
  * @param None
  * @retval None
  */
static void MX_LPUART1_UART_Init(void)
{

  /* USER CODE BEGIN LPUART1_Init 0 */

  /* USER CODE END LPUART1_Init 0 */

  /* USER CODE BEGIN LPUART1_Init 1 */

  /* USER CODE END LPUART1_Init 1 */
  hlpuart1.Instance = LPUART1;
  hlpuart1.Init.BaudRate = 115200;
  hlpuart1.Init.WordLength = UART_WORDLENGTH_8B;
  hlpuart1.Init.StopBits = UART_STOPBITS_1;
  hlpuart1.Init.Parity = UART_PARITY_NONE;
  hlpuart1.Init.Mode = UART_MODE_TX_RX;
  hlpuart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  hlpuart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  hlpuart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  hlpuart1.FifoMode = UART_FIFOMODE_DISABLE;
  if (HAL_UART_Init(&hlpuart1) != HAL_OK)
  {
    Error_Handler();
  }
  if (HAL_UARTEx_SetTxFifoThreshold(&hlpuart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
  {
    Error_Handler();
  }
  if (HAL_UARTEx_SetRxFifoThreshold(&hlpuart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
  {
    Error_Handler();
  }
  if (HAL_UARTEx_DisableFifoMode(&hlpuart1) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN LPUART1_Init 2 */

  /* USER CODE END LPUART1_Init 2 */

}

/**
  * @brief TIM8 Initialization Function
  * @param None
  * @retval None
  */
static void MX_TIM8_Init(void)
{

  /* USER CODE BEGIN TIM8_Init 0 */

  /* USER CODE END TIM8_Init 0 */

  TIM_MasterConfigTypeDef sMasterConfig = {0};
  TIM_OC_InitTypeDef sConfigOC = {0};
  TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};

  /* USER CODE BEGIN TIM8_Init 1 */

  /* USER CODE END TIM8_Init 1 */
  htim8.Instance = TIM8;
  htim8.Init.Prescaler = 160-1;
  htim8.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim8.Init.Period = 4999;
  htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim8.Init.RepetitionCounter = 0;
  htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  if (HAL_TIM_PWM_Init(&htim8) != HAL_OK)
  {
    Error_Handler();
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim8, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }
  sConfigOC.OCMode = TIM_OCMODE_PWM1;
  sConfigOC.Pulse = 0;
  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
  sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
  if (HAL_TIM_PWM_ConfigChannel(&htim8, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
  {
    Error_Handler();
  }
  sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
  sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
  sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
  sBreakDeadTimeConfig.DeadTime = 0;
  sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
  sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
  sBreakDeadTimeConfig.BreakFilter = 0;
  sBreakDeadTimeConfig.BreakAFMode = TIM_BREAK_AFMODE_INPUT;
  sBreakDeadTimeConfig.Break2State = TIM_BREAK2_DISABLE;
  sBreakDeadTimeConfig.Break2Polarity = TIM_BREAK2POLARITY_HIGH;
  sBreakDeadTimeConfig.Break2Filter = 0;
  sBreakDeadTimeConfig.Break2AFMode = TIM_BREAK_AFMODE_INPUT;
  sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
  if (HAL_TIMEx_ConfigBreakDeadTime(&htim8, &sBreakDeadTimeConfig) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN TIM8_Init 2 */

  /* USER CODE END TIM8_Init 2 */
  HAL_TIM_MspPostInit(&htim8);

}

MX_TIM8_Init和MX_GPDMA1_Init都没有相关的任何代码。

又对LPUART1的DMA也进行了测试发现都没有任何关于DMA初始化代码,只是配置了三个变量。不知道是不是设置步骤有什么问题

TIM_HandleTypeDef htim8;
DMA_NodeTypeDef Node_GPDMA1_Channel0;
DMA_QListTypeDef List_GPDMA1_Channel0;
DMA_HandleTypeDef handle_GPDMA1_Channel0;

 

此帖出自stm32/stm8论坛

最新回复

感谢分享!感谢分享!感谢分享!感谢分享!感谢分享!感谢分享!感谢分享!   详情 回复 发表于 2024-7-26 11:00
点赞 关注
 

回复
举报

1万

帖子

204

TA的资源

管理员

沙发
 

帮你呼叫下其他位测评网友:@lugl4313820     @怀揣少年梦   @慕容雪花   @damiaa   @常见泽1   @2609   @chrisrh   

此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

玩板看这里:

https://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!

 

回复

270

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
本帖最后由 怀揣少年梦 于 2024-2-5 14:22 编辑

看参考手册,LPDMA1不支持定时器8;

如下图:固定请求

 

 可编程触发:

 

参考一下,大佬这篇配置

【STM32U599J-DK】基于touchGFX的ADC_GPDMA数字电压表 - stm32/stm8 - 电子工程世界-论坛 (eeworld.com.cn)

此帖出自stm32/stm8论坛
 
 

回复

270

帖子

0

TA的资源

一粒金砂(高级)

4
 

 

 

 

 

我测试了一下,配置LPUART1,有LPDMA的初始化代码的

image.png (22.03 KB, 下载次数: 0)

image.png
此帖出自stm32/stm8论坛

点评

我看截图是LPDMA,我的STM32CubeMX是最新的版本,你更新一下,版本试试  详情 回复 发表于 2024-2-5 19:25
谢谢你的回复。我的项目使用的是GPDMA不是LPDMA,不过的项目中也使用了LPUART和LPDMA,但也是没有代码。这是我的项目文件 [attachimg]785126[/attachimg]    详情 回复 发表于 2024-2-5 17:14
 
 
 

回复

2870

帖子

4

TA的资源

五彩晶圆(中级)

5
 
怀揣少年梦 发表于 2024-2-5 14:28         我测试了一下,配置LPUART1,有LPDMA的初始化代码的
谢谢你的回复。我的项目使用的是GPDMA不是LPDMA,不过的项目中也使用了LPUART和LPDMA,但也是没有代码。这是我的项目文件 dmatest.ioc (9.34 KB, 下载次数: 0)

 

此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(中级)

6
 

如果配置没有问题的话可能是软件的问题,我在完成定时器的配置后除了while 1里面没有需要手动添加的代码,我的CubeMAX版本

 

此帖出自stm32/stm8论坛
 
 
 

回复

2870

帖子

4

TA的资源

五彩晶圆(中级)

7
 

我的版本是6.10.0,不知道是不是版本问题,这个版本是目前的最高版本了

 

此帖出自stm32/stm8论坛
 
 
 

回复

270

帖子

0

TA的资源

一粒金砂(高级)

8
 
怀揣少年梦 发表于 2024-2-5 14:28         我测试了一下,配置LPUART1,有LPDMA的初始化代码的

我看截图是LPDMA,我的STM32CubeMX是最新的版本,你更新一下,版本试试

此帖出自stm32/stm8论坛
 
 
 

回复

6841

帖子

11

TA的资源

版主

9
 
https://bbs.eeworld.com.cn/thread-1271701-1-1.html 我写了一个示例,希望对您有帮助!
此帖出自stm32/stm8论坛
 
 
 

回复

6069

帖子

4

TA的资源

版主

10
 

好像可以生成代码吧。我用的是 STM32CubeIDE Version: 1.14.1

   
具体没调试,只是试了一下乐意生成代码
此帖出自stm32/stm8论坛

点评

我照着你的设置,进行可设置,我的版本1.14.0,无论是STM32CubeIDE或者是STM32CUBeBOX,都是一样的 [attachimg]785214[/attachimg]      详情 回复 发表于 2024-2-5 21:49
 
 
 

回复

2870

帖子

4

TA的资源

五彩晶圆(中级)

11
 
damiaa 发表于 2024-2-5 21:12 好像可以生成代码吧。我用的是 STM32CubeIDE Version: 1.14.1     具体没调试,只是试 ...

我照着你的设置,进行可设置,我的版本1.14.0,无论是STM32CubeIDE或者是STM32CUBeBOX,都是一样的

 

 

此帖出自stm32/stm8论坛
 
 
 

回复

6069

帖子

4

TA的资源

版主

12
 

奇怪 。Tim8这里我是这样的,不知道你的是怎么样。两边的ch通道一样

 

此帖出自stm32/stm8论坛

点评

你的引脚设置和我的不一样,我的是PC7 led1,你的是PC6 当然是TIM8_CH1  详情 回复 发表于 2024-2-6 12:22
 
 
 

回复

2870

帖子

4

TA的资源

五彩晶圆(中级)

13
 
damiaa 发表于 2024-2-6 11:57 奇怪 。Tim8这里我是这样的,不知道你的是怎么样。两边的ch通道一样  

你的引脚设置和我的不一样,我的是PC7 led1,你的是PC6 当然是TIM8_CH1

此帖出自stm32/stm8论坛
 
 
 

回复

44

帖子

2

TA的资源

一粒金砂(中级)

14
 

感谢分享!感谢分享!感谢分享!感谢分享!感谢分享!感谢分享!感谢分享!

此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表