什么是PWM?
PWM(Paulse Width Modulation),即脉冲宽度调制,也就是占空比可变的脉冲波形。 占空比:指的是在一个周期内,信号处于高电平的时间占据整个信号周期的百分比。 pwm的占空比,就是指高电平保持的时间,与该pwm时钟周期时间之比。如:舵机的转角就是通过调节pwm占空比来控制,也就是一个周期中高电平所占的百分比来控制的。 教程: 设置及打开PWM 九联A311D开发板有两个pwm引脚分别对应目录为
PWM_1: /sys/class/pwm/pwmchip0/pwm0 PWM_2: /sys/class/pwm/pwmchip2/pwm0 导出PWM_1、PWM_2引脚目录
$ echo 0 > /sys/class/pwm/pwmchip0 $ echo 0 > /sys/class/pwm/pwmchip2 此时就会生成对应的引脚目录pwm0
打开或者关闭PWM(以pwm_1为例) $ echo 1 > /sys/class/pwm/pwmchip0/pwm0/enabled $ echo 0 > /sys/class/pwm/pwmchip0/pwm0/enabled 设置pwm的溢出值(单位 ns) $ echo 2600000 > /sys/class/pwm/pwmchip0/pwm0/period 设置pwm一个周期高电平的时间 $ echo 5000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle 设置pwm的极性 $ echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity $ echo inversed > /sys/class/pwm/pwmchip0/pwm0/polarity pwm接口函数 #define PWM1 1 #define PWM2 2
#define PWM1_PEX "/sys/class/pwm/pwmchip0" #define PWM2_PEX "/sys/class/pwm/pwmchip2"
int init_pmw(int pwmChannel); int set_pwm_period(int pwmChannel, long period); int set_pwm_dutyCycle(int pwmChannel, long dutyCycle); int set_pwm_polarity(int pwmChannel, int polarity); int set_pwm_enable(int pwmChannel, int isEnable); long get_pwm_period(int pwmChannel); long get_pwm_dutyCycle(int pwmChannel); int get_pwm_polarity(int pwmChannel); int is_pwm_enabled(int pwmChannel); 实际操作:
can't create /sys/class/pwm/pwmchip0/pwm0/enable: No such file or directory?
这个问题哪位大神能指出?不识别命令。
后续测评:
1 ,鸿蒙OS GUI
2,鸿蒙OS 交叉调试
....
|