a4eb5a5399
在使用stm32的pwm驱动时,发现其初始化channel的时候是根据device->channel这个值去初始化的,device->channel这个值是在pwm_configh.h里面定义设置的,又根据rtt的pwm例程,和常规习惯,应该大多数人会更喜欢设置channel=1/2/3/4,而不是在pwm_configh.h中将channel设置为TIM_CHANNEL_1/2/3/4,因此建议drv_pwm.c做出PR中的修改。 在实际开发中,因pwm_configh.h的示例均是.channel=0,又没有做出解释说明要让.channel=TIM_CHANNEL_1/2/3/4的值,容易误操作导致没有成功输出PWM,这是我在实际开发中遇到的现实问题,因而提出此建议。
75 lines
1.9 KiB
C
75 lines
1.9 KiB
C
/*
|
|
* Copyright (c) 2006-2021, RT-Thread Development Team
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2018-12-13 zylx first version
|
|
*/
|
|
|
|
#ifndef __PWM_CONFIG_H__
|
|
#define __PWM_CONFIG_H__
|
|
|
|
#include <rtthread.h>
|
|
|
|
#ifdef __cplusplus
|
|
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 \
|
|
{ \
|
|
.tim_handle.Instance = TIM2, \
|
|
.name = "pwm2", \
|
|
.channel = 0 \
|
|
}
|
|
#endif /* PWM2_CONFIG */
|
|
#endif /* BSP_USING_PWM2 */
|
|
|
|
#ifdef BSP_USING_PWM3
|
|
#ifndef PWM3_CONFIG
|
|
#define PWM3_CONFIG \
|
|
{ \
|
|
.tim_handle.Instance = TIM3, \
|
|
.name = "pwm3", \
|
|
.channel = 0 \
|
|
}
|
|
#endif /* PWM3_CONFIG */
|
|
#endif /* BSP_USING_PWM3 */
|
|
|
|
#ifdef BSP_USING_PWM4
|
|
#ifndef PWM4_CONFIG
|
|
#define PWM4_CONFIG \
|
|
{ \
|
|
.tim_handle.Instance = TIM4, \
|
|
.name = "pwm4", \
|
|
.channel = 0 \
|
|
}
|
|
#endif /* PWM4_CONFIG */
|
|
#endif /* BSP_USING_PWM4 */
|
|
|
|
#ifdef BSP_USING_PWM5
|
|
#ifndef PWM5_CONFIG
|
|
#define PWM5_CONFIG \
|
|
{ \
|
|
.tim_handle.Instance = TIM5, \
|
|
.name = "pwm5", \
|
|
.channel = 0 \
|
|
}
|
|
#endif /* PWM5_CONFIG */
|
|
#endif /* BSP_USING_PWM5 */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __PWM_CONFIG_H__ */
|