summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlinshire <[email protected]>2022-10-29 01:03:54 +0000
committerMan, Jianting (Meco) <[email protected]>2022-10-28 21:07:39 -0400
commit14722a48535c02eccf2ec3514d0a56825587c5d2 (patch)
treeb77aed8f352dde98f1526e4118f5cf68839b7ed9
parenta4eb5a5399068bc3e2a7548de26d1e54b203f828 (diff)
Revert "提交stm32 bsp drv_pwm.c里面的一个小建议 (#6517)"
This reverts commit a4eb5a5399068bc3e2a7548de26d1e54b203f828.
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f0/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f1/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f2/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f3/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f7/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/g0/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/g4/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/h7/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/l1/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/l4/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/l5/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/mp1/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/u5/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/wb/pwm_config.h6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_pwm.c82
16 files changed, 42 insertions, 130 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f0/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f0/pwm_config.h
index 84a5b9b81b..052e4ccec5 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f0/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f0/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG
#define PWM2_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f1/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f1/pwm_config.h
index 7518f26354..f5b32eef73 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f1/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f1/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM1
#ifndef PWM1_CONFIG
#define PWM1_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f2/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f2/pwm_config.h
index 5849b6274b..b8ef2d37f7 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f2/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f2/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG
#define PWM2_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f3/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f3/pwm_config.h
index c20baf1d2c..eafd4644c9 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f3/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f3/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM1
#ifndef PWM1_CONFIG
#define PWM1_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h
index d1b870574a..05563ce434 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM1
#ifndef PWM1_CONFIG
#define PWM1_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f7/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f7/pwm_config.h
index 5849b6274b..b8ef2d37f7 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f7/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f7/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG
#define PWM2_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/g0/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/g0/pwm_config.h
index 9fc12acf91..bc9c375b7a 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/g0/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/g0/pwm_config.h
@@ -18,12 +18,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG
#define PWM2_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/g4/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/g4/pwm_config.h
index 436435ac85..ca382e4742 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/g4/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/g4/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG
#define PWM2_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/h7/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/h7/pwm_config.h
index 370127883d..3306a20b25 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/h7/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/h7/pwm_config.h
@@ -18,12 +18,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM1
#ifndef PWM1_CONFIG
#define PWM1_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/l1/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/l1/pwm_config.h
index 5849b6274b..b8ef2d37f7 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/l1/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/l1/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG
#define PWM2_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/l4/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/l4/pwm_config.h
index aaa7b3fc02..c4d4bcf202 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/l4/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/l4/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM1
#ifndef PWM1_CONFIG
#define PWM1_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/l5/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/l5/pwm_config.h
index aaa7b3fc02..c4d4bcf202 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/l5/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/l5/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM1
#ifndef PWM1_CONFIG
#define PWM1_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/mp1/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/mp1/pwm_config.h
index 5849b6274b..b8ef2d37f7 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/mp1/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/mp1/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM2
#ifndef PWM2_CONFIG
#define PWM2_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/u5/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/u5/pwm_config.h
index aaa7b3fc02..c4d4bcf202 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/u5/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/u5/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM1
#ifndef PWM1_CONFIG
#define PWM1_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/wb/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/wb/pwm_config.h
index c61d283860..1d129e6792 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/wb/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/wb/pwm_config.h
@@ -17,12 +17,6 @@
extern "C" {
#endif
-/*
- * .tim_handle.Instance = TIM1/2/3...,
- * .name = "your pwm device name",
- * .channel = 1/2/3/4
- */
-
#ifdef BSP_USING_PWM1
#ifndef PWM1_CONFIG
#define PWM1_CONFIG \
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c b/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c
index 20ea626832..abcffa7288 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c
@@ -234,13 +234,7 @@ static struct rt_pwm_ops drv_ops =
static rt_err_t drv_pwm_enable(TIM_HandleTypeDef *htim, struct rt_pwm_configuration *configuration, rt_bool_t enable)
{
/* Converts the channel number to the channel number of Hal library */
- rt_uint32_t channel = configuration->channel;
- if(channel < 1 || channel > 4)
- {
- LOG_E("pwm channel %d is invalid, failed to enable", configuration->channel);
- return -RT_ERROR;
- }
- channel = 0x04 * (configuration->channel - 1);
+ rt_uint32_t channel = 0x04 * (configuration->channel - 1);
if (!configuration->complementary)
{
@@ -271,13 +265,7 @@ static rt_err_t drv_pwm_enable(TIM_HandleTypeDef *htim, struct rt_pwm_configurat
static rt_err_t drv_pwm_get(TIM_HandleTypeDef *htim, struct rt_pwm_configuration *configuration)
{
/* Converts the channel number to the channel number of Hal library */
- rt_uint32_t channel = configuration->channel;
- if(channel < 1 || channel > 4)
- {
- LOG_E("pwm channel %d is invalid, failed to get", configuration->channel);
- return -RT_ERROR;
- }
- channel = 0x04 * (configuration->channel - 1);
+ rt_uint32_t channel = 0x04 * (configuration->channel - 1);
rt_uint64_t tim_clock;
tim_clock = tim_clock_get(htim);
@@ -303,13 +291,7 @@ static rt_err_t drv_pwm_set(TIM_HandleTypeDef *htim, struct rt_pwm_configuration
rt_uint32_t period, pulse;
rt_uint64_t tim_clock, psc;
/* Converts the channel number to the channel number of Hal library */
- rt_uint32_t channel = configuration->channel;
- if(channel < 1 || channel > 4)
- {
- LOG_E("pwm channel %d is invalid, failed to set", configuration->channel);
- return -RT_ERROR;
- }
- channel = 0x04 * (configuration->channel - 1);
+ rt_uint32_t channel = 0x04 * (configuration->channel - 1);
tim_clock = tim_clock_get(htim);
/* Convert nanosecond to frequency and duty cycle. 1s = 1 * 1000 * 1000 * 1000 ns */
@@ -372,13 +354,7 @@ static rt_err_t drv_pwm_set_pulse(TIM_HandleTypeDef *htim, struct rt_pwm_configu
rt_uint32_t period, pulse;
rt_uint64_t tim_clock;
/* Converts the channel number to the channel number of Hal library */
- rt_uint32_t channel = configuration->channel;
- if(channel < 1 || channel > 4)
- {
- LOG_E("pwm channel %d is invalid, failed to set pulse", configuration->channel);
- return -RT_ERROR;
- }
- channel = 0x04 * (configuration->channel - 1);
+ rt_uint32_t channel = 0x04 * (configuration->channel - 1);
tim_clock = tim_clock_get(htim);
/* Convert nanosecond to frequency and duty cycle. 1s = 1 * 1000 * 1000 * 1000 ns */
@@ -432,14 +408,6 @@ static rt_err_t stm32_hw_pwm_init(struct stm32_pwm *device)
TIM_MasterConfigTypeDef master_config = {0};
TIM_ClockConfigTypeDef clock_config = {0};
- rt_uint32_t channel = device->channel;
- if(channel < 1 || channel > 4)
- {
- LOG_E("%s pwm channel %d is invalid, failed to init", device->name, device->channel);
- return -RT_ERROR;
- }
- channel = 0x04 * (device->channel - 1);
-
RT_ASSERT(device != RT_NULL);
tim = (TIM_HandleTypeDef *)&device->tim_handle;
@@ -490,11 +458,45 @@ static rt_err_t stm32_hw_pwm_init(struct stm32_pwm *device)
oc_config.OCNIdleState = TIM_OCNIDLESTATE_RESET;
oc_config.OCIdleState = TIM_OCIDLESTATE_RESET;
- if (HAL_TIM_PWM_ConfigChannel(tim, &oc_config, channel) != HAL_OK)
+ /* config pwm channel */
+ if (device->channel & 0x01)
{
- LOG_E("%s %d config failed", device->name, device->channel);
- result = -RT_ERROR;
- goto __exit;
+ if (HAL_TIM_PWM_ConfigChannel(tim, &oc_config, TIM_CHANNEL_1) != HAL_OK)
+ {
+ LOG_E("%s channel1 config failed", device->name);
+ result = -RT_ERROR;
+ goto __exit;
+ }
+ }
+
+ if (device->channel & 0x02)
+ {
+ if (HAL_TIM_PWM_ConfigChannel(tim, &oc_config, TIM_CHANNEL_2) != HAL_OK)
+ {
+ LOG_E("%s channel2 config failed", device->name);
+ result = -RT_ERROR;
+ goto __exit;
+ }
+ }
+
+ if (device->channel & 0x04)
+ {
+ if (HAL_TIM_PWM_ConfigChannel(tim, &oc_config, TIM_CHANNEL_3) != HAL_OK)
+ {
+ LOG_E("%s channel3 config failed", device->name);
+ result = -RT_ERROR;
+ goto __exit;
+ }
+ }
+
+ if (device->channel & 0x08)
+ {
+ if (HAL_TIM_PWM_ConfigChannel(tim, &oc_config, TIM_CHANNEL_4) != HAL_OK)
+ {
+ LOG_E("%s channel4 config failed", device->name);
+ result = -RT_ERROR;
+ goto __exit;
+ }
}
/* pwm pin configuration */