OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 362|回复: 1

stm32F4 TIM8 DMA问题求助

[复制链接]

18

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2016-12-5
在线时间
57 小时
发表于 2024-8-2 15:07:08 | 显示全部楼层 |阅读模式
50金钱
本帖最后由 dai410257573 于 2024-8-2 15:15 编辑

想使用tim8  的dma 触发 spi,遇到了点问题
现象:
tim8 CH1/3 触发不了spi, 但是CH4 可以触发
看手册,DMA章节里面是这样的,里面DMA2 通道0,数据流2,和通道7数据流7,里面都是分别有写3个
1722582613398.jpg

配置如下:CH2N输出PWM,控制SPI的cs, CH1 /3 /4  来利用DMA触发 spi
1722582652491.jpg 1722582678941.jpg
代码如下:
  1.     LL_SPI_Enable(SPI2); //使能SPI2外设
  2.     //TIM8_CH3
  3.     LL_DMA_SetMemoryAddress(DMA2, LL_DMA_STREAM_2, (uint32_t)(&spi2_txData));
  4.     LL_DMA_SetPeriphAddress(DMA2, LL_DMA_STREAM_2, (uint32_t)(&SPI2->DR));   
  5.     LL_DMA_SetDataLength(DMA2, LL_DMA_STREAM_2, 1);  
  6.     LL_DMA_EnableStream(DMA2, LL_DMA_STREAM_2);  
  7.    
  8.     LL_DMA_SetMemoryAddress(DMA2, LL_DMA_STREAM_7, (uint32_t)(&spi2_txData));
  9.     LL_DMA_SetPeriphAddress(DMA2, LL_DMA_STREAM_7, (uint32_t)(&SPI2->DR));   
  10.     LL_DMA_SetDataLength(DMA2, LL_DMA_STREAM_7, 1);  
  11.     LL_DMA_EnableStream(DMA2, LL_DMA_STREAM_7);     
  12.   

  13.     LL_TIM_CC_EnableChannel(TIM8, LL_TIM_CHANNEL_CH1);
  14.     LL_TIM_CC_EnableChannel(TIM8, LL_TIM_CHANNEL_CH2N);
  15.     LL_TIM_CC_EnableChannel(TIM8, LL_TIM_CHANNEL_CH3);
  16.     LL_TIM_CC_EnableChannel(TIM8, LL_TIM_CHANNEL_CH4);
  17.     LL_TIM_EnableDMAReq_CC1(TIM8);
  18.     LL_TIM_EnableDMAReq_CC3(TIM8);
  19.     LL_TIM_EnableDMAReq_CC4(TIM8);
  20.          
  21.     LL_TIM_EnableDMAReq_UPDATE(TIM8);
  22.     LL_TIM_EnableAllOutputs( TIM8 );                                                //只有高级定时器需要
  23.    

  24.     LL_TIM_SetCounter(TIM8,0);//清0,重新计数
  25.         LL_TIM_EnableCounter(TIM8);//TIM1计数使能  
  26.     LL_TIM_GenerateEvent_UPDATE(TIM8);


复制代码

1722582746174.jpg
关于使能DMA请求的是
    LL_TIM_EnableDMAReq_CC1(TIM8);
    LL_TIM_EnableDMAReq_CC3(TIM8);
    LL_TIM_EnableDMAReq_CC4(TIM8);

使能TIM8的DMA CC,最后测量发现,只有CC4能触发SPI, CC1和CC3没有 触发。

这里也注释过CC4 CC3, 也不能触发。

这我就不太理解了,为啥CH1 CH3不能触发呢?求大佬指点一下。
手册里面DMA2 通道0 数据流2 里面,TIM8CH1/2/3这里3个是怎么来触发的?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2016-12-5
在线时间
57 小时
 楼主| 发表于 2024-8-5 14:03:42 | 显示全部楼层
看来没有大佬遇到过我这个问题啊
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 06:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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