RTT学习之PWM、ADC设备

一 使用步骤:  

  1. 查找 PWM 设备获取设备句柄。rt_device_find()

  2. 设置 PWM 周期和脉冲宽度。rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);

  3. 使能 PWM 设备。rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);//rt_pwm_disable(pwm_dev, PWM_DEV_CHANNEL);

  4. while 循环里每 50 毫秒修改一次脉冲宽度pulse的值,并通过rt_pwm_set设置进去。

  5. 将 PWM通道对应引脚和 LED 对应引脚相连,可以看到 LED 不停的由暗变到亮,然后又从亮变到暗。

  6. 在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

原文地址:https://www.cnblogs.com/jieruishu/p/11803698.html