|
可正常使用hal庫版本32三路PWM輸入捕獲加四路PWM輸出
注意配置程序中定時器中斷優先級順序,和cube生成代碼并不完全,需要人為補充,
例程參照硬石
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
MX_TIM2_Init();
MX_TIM3_Init();
MX_TIM4_Init();
MX_TIM1_Init();
/* Initialize interrupts */
MX_NVIC_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
/* USER CODE BEGIN 2 */
TIM_IC_Start();
/* USER CODE END 2 */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
n = 0;
Read_Timer_Data();
/*duty3éèÖÃÎa¼óËùoí¼õËù£¬duty1éèÖÃÎaǰ½ø»òÕßoóíË£¬duty2éèÖÃÎa×óóò×a*/
// PWM_Change_Duty(50,50,50,50);
// if(duty3<1600)
// {
// /*×ó*/
// if(duty2<2400)
// {
// PWM_Change_Duty(300,0,0,300);
// }
// /*óò*/
// if(duty2>2500)
// {
// PWM_Change_Duty(0,300,300,0);
// }
// /*ǰ*/
// if(duty2>=2400&&duty2<=2500&&duty>2400)
// {
// PWM_Change_Duty(300,0,300,0);
// }
// /*oó*/
// if(duty2>=2400&&duty2<=2500&&duty<2400)
// {
// PWM_Change_Duty(0,300,0,300);
// }
// }
if(duty3>=1200)
{
n = (uint32_t)((((float)duty3/10)/2)-81)*10;
/*×ó*/
if(duty2>2400)
{
PWM_Change_Duty(0,300+n,0,0);
}
/*óò*/
if(duty2<2200)
{
PWM_Change_Duty(300+n,0,0,0);
}
/*ǰ*/
if(duty2<=2400&&duty2>=2200&&duty>2400)
{
PWM_Change_Duty(300+n,300+n,0,0);
}
/*oó*/
if(duty2<=2400&&duty2>=2200&&duty<2200)
{
PWM_Change_Duty(0,0,300+n,300+n);
}
}
printf ("duty1: %d \r duty2: %d \r duty3: %d \r n: %d\n", duty, duty2,duty3,n);
HAL_Delay(50);
}
/* USER CODE END 3 */
}
|
-
-
4路pwm輸出加捕獲_2.7z
2020-1-16 18:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
373.23 KB, 下載次數: 22, 下載積分: 黑幣 -5
|