rt-thread AT设备EC20参数配置

在使用AT软件包的时候,这里有一个电源引脚和电源状态引脚的配置。
在这里插入图片描述
对应的代码包含电两个管脚的初始化配置和上电断电函数。
在这里插入图片描述

static void ec20_power_on(struct at_device *device)
{
    struct at_device_ec20 *ec20 = RT_NULL;

    ec20 = (struct at_device_ec20 *)device->user_data;

    /* not nead to set pin configuration for ec20 device power on */
    if (ec20->power_pin == -1 || ec20->power_status_pin == -1)
    {
        return;
    }

    if (rt_pin_read(ec20->power_status_pin) == PIN_HIGH)
    {
        return;
    }
    rt_pin_write(ec20->power_pin, PIN_HIGH);

    while (rt_pin_read(ec20->power_status_pin) == PIN_LOW)
    {
        rt_thread_mdelay(10);
    }
    rt_pin_write(ec20->power_pin, PIN_LOW);
}

static void ec20_power_off(struct at_device *device)
{
    struct at_device_ec20 *ec20 = RT_NULL;

    ec20 = (struct at_device_ec20 *)device->user_data;

    /* not nead to set pin configuration for ec20 device power on */
    if (ec20->power_pin == -1 || ec20->power_status_pin == -1)
    {
        return;
    }

    if (rt_pin_read(ec20->power_status_pin) == PIN_LOW)
    {
        return;
    }
    rt_pin_write(ec20->power_pin, PIN_HIGH);

    while (rt_pin_read(ec20->power_status_pin) == PIN_HIGH)
    {
        rt_thread_mdelay(10);
    }
    rt_pin_write(ec20->power_pin, PIN_LOW);
}

那么这里就存在两个问题,第一个是上电有效电平:
在这里插入图片描述
根据这里的硬件设计,我是PWR_ON=0的时候,EC20的供电才有输出,所以这里的有效电平需要修改。
另外一个,就是我们并没有做额外的电源状态power_status_pin,其实可以直接读取power_pin的值就行了,如果我们把两个引脚设置为同一个,那么这个引脚就会先被配置成输出模式,再被配置成输入模式,实际并没有办法输出,所以这里的顺序也要修改一下。
修改之前的运行效果是这样的:
在这里插入图片描述
修改完了重新下载程序,初始化成功。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章