1.CH32驱动更新,新增硬件延迟函数。

2.CH32驱动修复,PWM通道设置初值。
This commit is contained in:
MacRsh
2024-01-16 04:14:33 +08:00
parent cb907160b1
commit 3f6770b2b1
2 changed files with 23 additions and 0 deletions

View File

@@ -193,6 +193,7 @@ static int drv_pwm_channel_configure(struct mr_pwm *pwm, int channel, int state,
GPIO_Init(pwm_data->ch1_port, &GPIO_InitStructure); GPIO_Init(pwm_data->ch1_port, &GPIO_InitStructure);
TIM_OC1Init(pwm_data->instance, &TIM_OCInitStructure); TIM_OC1Init(pwm_data->instance, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable); TIM_OC1PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable);
TIM_SetCompare1(pwm_data->instance, 0);
return MR_EOK; return MR_EOK;
} }
case 2: case 2:
@@ -201,6 +202,7 @@ static int drv_pwm_channel_configure(struct mr_pwm *pwm, int channel, int state,
GPIO_Init(pwm_data->ch2_port, &GPIO_InitStructure); GPIO_Init(pwm_data->ch2_port, &GPIO_InitStructure);
TIM_OC2Init(pwm_data->instance, &TIM_OCInitStructure); TIM_OC2Init(pwm_data->instance, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable); TIM_OC2PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable);
TIM_SetCompare2(pwm_data->instance, 0);
return MR_EOK; return MR_EOK;
} }
case 3: case 3:
@@ -209,6 +211,7 @@ static int drv_pwm_channel_configure(struct mr_pwm *pwm, int channel, int state,
GPIO_Init(pwm_data->ch3_port, &GPIO_InitStructure); GPIO_Init(pwm_data->ch3_port, &GPIO_InitStructure);
TIM_OC3Init(pwm_data->instance, &TIM_OCInitStructure); TIM_OC3Init(pwm_data->instance, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable); TIM_OC3PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable);
TIM_SetCompare3(pwm_data->instance, 0);
return MR_EOK; return MR_EOK;
} }
case 4: case 4:
@@ -217,6 +220,7 @@ static int drv_pwm_channel_configure(struct mr_pwm *pwm, int channel, int state,
GPIO_Init(pwm_data->ch4_port, &GPIO_InitStructure); GPIO_Init(pwm_data->ch4_port, &GPIO_InitStructure);
TIM_OC4Init(pwm_data->instance, &TIM_OCInitStructure); TIM_OC4Init(pwm_data->instance, &TIM_OCInitStructure);
TIM_OC4PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable); TIM_OC4PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable);
TIM_SetCompare4(pwm_data->instance, 0);
return MR_EOK; return MR_EOK;
} }

19
bsp/wch/driver/mr_board.c Normal file
View File

@@ -0,0 +1,19 @@
/*
* @copyright (c) 2023-2024, MR Development Team
*
* @license SPDX-License-Identifier: Apache-2.0
*
* @date 2024-01-16 MacRsh First version
*/
#include "mr_board.h"
void mr_delay_us(uint32_t us)
{
Delay_Us(us);
}
void mr_delay_ms(uint32_t ms)
{
Delay_Ms(ms);
}