参考用户手册,调用如下接口:
void pmu_set_aldo_voltage(enum pmu_aldo_work_mode_t mode, uint8_t value)
进行设置;
以下是一部分参考代码:
uint16_t LDO_value=0;
static int LDO_task_func(os_event_t *param)
{
switch(param->event_id)
{
case USER_EVT_BUTTON:
{
struct button_msg_t *button_msg;
const char *button_type_str[] = {
"BUTTON_PRESSED",
"BUTTON_RELEASED",
"BUTTON_SHORT_PRESSED",
"BUTTON_MULTI_PRESSED",
"BUTTON_LONG_PRESSED",
"BUTTON_LONG_PRESSING",
"BUTTON_LONG_RELEASED",
"BUTTON_LONG_LONG_PRESSED",
"BUTTON_LONG_LONG_RELEASED",
"BUTTON_COMB_PRESSED",
"BUTTON_COMB_RELEASED",
"BUTTON_COMB_SHORT_PRESSED",
"BUTTON_COMB_LONG_PRESSED",
"BUTTON_COMB_LONG_PRESSING",
"BUTTON_COMB_LONG_RELEASED",
"BUTTON_COMB_LONG_LONG_PRESSED",
"BUTTON_COMB_LONG_LONG_RELEASED",
};
button_msg = (struct button_msg_t *)param->param;
co_printf("KEY 0x%08x, TYPE %s.\r\n", button_msg->button_index, button_type_str[button_msg->button_type]);
//ALDO out是由寄存器的高4bit控制输出,即在调用“pmu_set_aldo_voltage”函数时,
//参数1配置PMU_ALDO_MODE_NORMAL,参数2配置0x10-0xf0,分别对应1.8-3.5v左右的电压配置,
//其中0x10-0x70是0.05v左右的步进,0x70-0x80是0.1v,0x80-0xf0是0.2v的步进。
if(button_msg->button_type == BUTTON_SHORT_PRESSED){//短按
if(button_msg->button_index == GPIO_PD6 ){//Key2
LDO_value -=0x10;
}else if(button_msg->button_index == GPIO_PC5){//KEY1 工作模式切换
LDO_value +=0x10;
}
if(LDO_value>0xf0){
LDO_value = 0xf0;
}else if(LDO_value<0x10){
LDO_value = 0x10;
}
co_printf("LDO Change:%02x\r\n", LDO_value);
pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL, LDO_value);
}else if(button_msg->button_type == BUTTON_LONG_PRESSED){//按键长按
if(button_msg->button_index == GPIO_PC5 ){
co_printf("K1 long Pressed\r\n");
//tft_write_pic_data_to_flash();
}
}
}
break;
}
return EVT_CONSUMED;
}
作者: evanwalker, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3902443.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论