打印

stm32利用tim+dma 进行并口输出,速度不对

[复制链接]
627|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ljxh401|  楼主 | 2021-1-15 21:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ljxh401 于 2021-1-15 21:17 编辑

我使用的是 跟 stm32类似的cpu TKM32F499
我使用 tim2 的脉冲输出 周期为 4秒
ch4  pwm的占空比 50%  可以看到led 亮两秒 暗两秒
然后我用 ch4 触发dma 对 GPIOE->ODR 进行写数据 循环写入 0xFFFFFFFF 0x00000000发现 GPIOE输出的 脉冲周期 竟然是 8秒

        INT32U pedata[]={0xFFFFFFFF,0x00000000,0xFFFFFFFF,0x00000000,};

        TIM2_Config(48000,20000);                                                                                        //周期4秒
        Dma_Tx_Init(DMA2_Channel8,(INT32U)&GPIOE->ODR,0,2);                                                //DataSize_Word的数据模式 循环模式
        DmaSendData(DMA2_Channel8,(INT8U*)pedata,sizeof(pedata)/sizeof(pedata[0]));
        TIM_DMACmd(TIM2,TIM_DMA_CC4,ENABLE);


使用特权

评论回复

相关帖子

沙发
ljxh401|  楼主 | 2021-1-16 11:18 | 只看该作者
顶一下

使用特权

评论回复
板凳
ljxh401|  楼主 | 2021-1-16 16:00 | 只看该作者
程序也没有错 效果也没有错 是我脑子短路了 每个 ch4 更新一次数据 所以 我的频率 ff 00 需要 两次 ch4 所以 频率是两倍 没有问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

220

帖子

3

粉丝