完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
tiM1使用DMA 方式来产生PWM不同duty 的波形,想监控一下DMA 是否完成,但是无法进入中断。以下初始化的配置:(PWM 的波形是正确的,但是DMA完成的TC中断一直都没有监控到)
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1); /[i] DMA interrupt init //[i] DMA1_Ch4_7_DMAMUX1_OVR_IRQn interrupt configuration /NVIC_SetPriority(DMA1_Ch4_7_DMAMUX1_OVR_IRQn, 0);NVIC_EnableIRQ(DMA1_Ch4_7_DMAMUX1_OVR_IRQn); /[i] TIM1_UP Init /LL_DMA_SetPeriphRequest(DMA1, LL_DMA_CHANNEL_5, LL_DMAMUX_REQ_TIM1_UP); LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_5, LL_DMA_DIRECTION_MEMORY_TO_PERIPH); LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PRIORITY_HIGH); LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_MODE_CIRCULAR); LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PERIPH_NOINCREMENT); LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_MEMORY_INCREMENT); LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PDATAALIGN_HALFWORD); LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PDATAALIGN_HALFWORD); LL_DMA_ConfigAddresses(DMA1, LL_DMA_CHANNEL_5, (uint32_t) u16DMA_Buffer_Lower[0], (uint32_t) TIM1->CCR1, LL_DMA_GetDataTransferDirection(DMA1, LL_DMA_CHANNEL_5)); LL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_5, 230);LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_5);LL_DMA_EnableIT_TE(DMA1, LL_DMA_CHANNEL_5); LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_5); LL_TIM_ClearFlag_UPDATE(TIM1); LL_TIM_EnableIT_UPDATE(TIM1); LL_TIM_CC_EnableChannel(TIM1, LL_TIM_CHANNEL_CH1);LL_TIM_CC_EnableChannel(TIM1, LL_TIM_CHANNEL_CH1N); /[i] Enable TIM1 outputs /LL_TIM_EnableAllOutputs(TIM1); /[i] Enable counter /LL_TIM_EnableCounter(TIM1); LL_TIM_EnableDMAReq_UPDATE(TIM1); |
|
相关推荐
1个回答
|
|
看了下你的代码,没有看出啥问题。
我使用G0芯片对TIM1 -CH1的pwm输出做了配置,基于更新事件做CCR的修改,没有啥问题,进入完成中断正常。 我的测试代码跟你的几乎一模一样,当然我这边输出也正常。我这里使用的是DMA1 channel 1. uint16_t DMA_Buffer]={100,200,300,400,500,600,700,800,900,1000,0}; LL_DMA_ConfigAddresses(DMA1, LL_DMA_CHANNEL_1, (uint32_t) DMA_Buffer0], (uint32_t) TIM1->CCR1, LL_DMA_DIRECTION_MEMORY_TO_PERIPH); LL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_1, 10); LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_1); //LL_DMA_EnableIT_TE(DMA1, LL_DMA_CHANNEL_1); LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_1); ****************************************** void DMA1_Channel1_IRQHandler(void){ /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */ LL_DMA_ClearFlag_TC1( DMA1); __NOP(); __NOP(); __NOP(); /* USER CODE END DMA1_Channel1_IRQn 0 */ /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */ /* USER CODE END DMA1_Channel1_IRQn 1 */ } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1817 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1103 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
739 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1692 浏览 2 评论
1951浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
754浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
586浏览 3评论
605浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
568浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 10:26 , Processed in 0.871839 second(s), Total 50, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号