我在DA14580EVKET-B中测试DA14580,并设置GPIO端口0,pin4为输出,值为1。
如果#undef CFG_EXT_SLEEP,输出总是高。如果#define CFG_EXT_SLEEP,则输出变低
当系统进入扩展睡眠时,如何保持输出?
你好,中国,
你能把这个问题说清楚吗?你是说当你进入扩展睡眠模式时,GPIO端口0的I/O状态没有保持它的状态?
所有的gpio都有保留状态,所以会在延长睡眠期间保持状态。(作为输入,每个GPIO可以在扩展睡眠中用作唤醒计数器的输入。)
BR JE_Dialog
我发现set_pad_functions()将在每次系统唤醒时调用,在这个函数中我设置了I/O输出LOW。但是一些I/O在工作时设置为HIGH。所以当系统醒来时,它是低的。
嗨
每次从睡眠中醒来时,都会调用peripher_setup .c中的peripher_init函数。这个函数调用setpad函数,它总是无条件地设置电平-正如你所说的。
您应该删除该语句
GPIO_ConfigurePin(GPIO_PORT_1, GPIO_PIN_1, INPUT_PULLUP, PID_GPIO, false);
从set_pad_functions()函数。
在app_set_dev_config_complete_func()函数中,使用GPIO_ConfigurePin设置默认值或启动值:
GPIO_ConfigurePin(GPIO_PORT_1, GPIO_PIN_1, INPUT_PULLUP, PID_GPIO, false);//设置引脚低
然后在你的应用程序中,不是用GPIO_设置大头针SetInactive()或GPIO_SetActive(),使用GPIO_ConfigurePin()函数-使用false设置引脚低,使用true保持高。这将确保引脚被正确配置,并在休眠模式中保持闩锁。
嗨MHv_dialog,我按照你上一句的描述配置了GPIO管脚。当我取消定义CFG_EXT_SLEEP标志时,它工作正常,但如果定义了CFG_EXT_SLEEP,我从睡眠中醒来,引脚是低的。是否需要将端口保留分开?
BR扫描电镜
嗨MHv_Dialog,
你有什么消息要告诉我吗?
你好,中国,
你能把这个问题说清楚吗?你是说当你进入扩展睡眠模式时,GPIO端口0的I/O状态没有保持它的状态?
所有的gpio都有保留状态,所以会在延长睡眠期间保持状态。(作为输入,每个GPIO可以在扩展睡眠中用作唤醒计数器的输入。)
BR JE_Dialog
我发现set_pad_functions()将在每次系统唤醒时调用,在这个函数中我设置了I/O输出LOW。但是一些I/O在工作时设置为HIGH。所以当系统醒来时,它是低的。
嗨
每次从睡眠中醒来时,都会调用peripher_setup .c中的peripher_init函数。这个函数调用setpad函数,它总是无条件地设置电平-正如你所说的。
您应该删除该语句
GPIO_ConfigurePin(GPIO_PORT_1, GPIO_PIN_1, INPUT_PULLUP, PID_GPIO, false);
从set_pad_functions()函数。
在app_set_dev_config_complete_func()函数中,使用GPIO_ConfigurePin设置默认值或启动值:
GPIO_ConfigurePin(GPIO_PORT_1, GPIO_PIN_1, INPUT_PULLUP, PID_GPIO, false);//设置引脚低
然后在你的应用程序中,不是用GPIO_设置大头针SetInactive()或GPIO_SetActive(),使用GPIO_ConfigurePin()函数-使用false设置引脚低,使用true保持高。这将确保引脚被正确配置,并在休眠模式中保持闩锁。
嗨MHv_dialog,
我按照你上一句的描述配置了GPIO管脚。当我取消定义CFG_EXT_SLEEP标志时,它工作正常,但如果定义了CFG_EXT_SLEEP,我从睡眠中醒来,引脚是低的。是否需要将端口保留分开?
BR扫描电镜
嗨MHv_Dialog,
你有什么消息要告诉我吗?
BR扫描电镜