初级会员

- 积分
- 82
- 金钱
- 82
- 注册时间
- 2016-4-9
- 在线时间
- 32 小时
|
50金钱
本帖最后由 钟楼脚下 于 2020-3-2 08:28 编辑
想用TIM5的CH1和CH2输入同一个信号 然后用CH1检测上升沿 CH2检测下降沿 通过计算CNT的差值实现脉冲宽度的测量,在原子哥的例程基础上修改
TIM5_CH1_Cap_Init(0XFFFFFFFF,90-1);
TIM5CH1DMA_Config(DMA1_Stream2,DMA_CHANNEL_6);
TIM5CH2DMA_Config(DMA1_Stream4,DMA_CHANNEL_6);
两个CH的DMA传输部分可以摸索着改好 到了最后一步 启动DMA传输 不会改了void TIM5CH1DMA_Transmit(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Size)
{ HAL_DMA_Start(htim->hdma[TIM_DMA_ID_CC1],(uint32_t)&htim->Instance->CCR1,(u32)pData1, Size);
HAL_DMA_Start(htim->hdma[TIM_DMA_ID_CC2],(uint32_t)&htim->Instance->CCR2,(u32)pData2, Size);
}
这样写的程序 两个DMA是同时传输还是分别传输的? 如果是分别传输的 那我怎么样写 才能让两个同时传输呢? 因为我需要两个CNT的值相减,所以如果不是同时传输 那么我这个方法就不可行了
谢谢
|
|