一 使用步骤:
-
查找 PWM 设备获取设备句柄。rt_device_find()
-
设置 PWM 周期和脉冲宽度。rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
-
使能 PWM 设备。rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);//rt_pwm_disable(pwm_dev, PWM_DEV_CHANNEL);
-
while 循环里每 50 毫秒修改一次脉冲宽度pulse的值,并通过rt_pwm_set设置进去。
-
将 PWM通道对应引脚和 LED 对应引脚相连,可以看到 LED 不停的由暗变到亮,然后又从亮变到暗。
- 在fish中可以通过命令操作pwm_set pwm1 PWM_DEV_CHANNEL, period, pulse ;pwm_enable/disable pwm1 PWM_DEV_CHANNEL
7备注可以将方向(直线的斜度)、周期、占空比自定义数据结构更加清晰;
ADC设备:可以将ADC设备名称,通道、ADC值、模拟值自定义成结构体
#define ADC_DEV_NAME "adc1" /* ADC 设备名称 */ #define ADC_DEV_CHANNEL 5 /* ADC 通道 */ rt_adc_device_t adc_dev; /* ADC 设备句柄 */ rt_uint32_t value; /* 查找设备 */ adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); /* 使能设备 */ rt_adc_enable(adc_dev, ADC_DEV_CHANNEL); /* 读取采样值 */ value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL); /* 转换为对应电压值 */
//采样值 * 参考电压 / (1 << 分辨率位数),上面示例代码乘以 100 将数据放大,最后通过 vol / 100 获得电压的整数位值,通过 vol % 100 获得电压的小数位值
vol = value * REFER_VOLTAGE / CONVERT_BITS;///* 参考电压 3.3V,数据精度乘以100保留2位小数*/ rt_kprintf("the voltage is :%d.%02d ", vol / 100, vol % 100); /* 关闭通道 */ rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);
FISH命令:
注册:adc probe adc1
使能、禁能:adc enable 5
读值 :adc read 5