我一直在尝试使用互补通道在
tiM1 上启动 PWM,并使用 DMA 启动 PWM。我遇到的问题是,当我运行该程序时,只有一个频道会启动。TIM1_CH1 正在使用 DMA 通道 2,我找不到任何其他专门用于 TIM1_CH1N 的通道。这是我写的 main 的一个片段。
- int main(void)
- {
- const uint32_t lookup[100] = {1200,1275,1350,1424,1498,1570,1641,1710,1777,1842,1905,1964,2021,2074,2124,2170,2212,2251,2285,2315,2340,2361,2378,2390,2397,2399,2397,2390,2378,2361,2340,2315,2285,2251,2212,2170,2124,2074,2021,1964,1905,1842,1777,1710,1641,1570,1498,1424,1350,1275,1200,1124,1049,975,901,829,758,689,622,557,494,435,378,325,275,229,187,148,114,84,59,38,21,9,2,0,2,9,21,38,59,84,114,148,187,229,275,325,378,435,494,557,622,689,758,829,901,975,1049,1124};
- HAL_Init();
- SystemClock_Config();
- MX_GPIO_Init();
- MX_DMA_Init();
- MX_TIM1_Init();
- HAL_TIM_PWM_Start_DMA(&htim1, TIM_CHANNEL_1, (uint32_t*)lookup, 100);
- HAL_TIMEx_PWMN_Start_DMA(&htim1, TIM_CHANNEL_1,(uint32_t*)lookup, 100);
- while (1) {}
- }
我的问题如下:TIM1_CH1N 是否需要一个单独的 DMA 通道才能启动,如果需要,我如何在 CubeMX 上访问该通道。目前,TIM1 中唯一可以访问的外设是 TIM1_CH1、TIM1_UP 和 TIM1_CH4/TRIG/COM。
当我分别启动两个通道时,PWM 信号起作用,所以我知道初始化没有大问题。只是当我同时启动两个定时器通道时,其中一个不会启动。
0
|