local function GPIO_Input_init() local KEY1 = pins.setup(27, nil, pio.PULLUP)--将GPIO27初始化为输入上拉 local LED1 = pins.setup(64, 0)--将GPIO64初始化为输出 whiletruedo if KEY1() == 0 then--如果KEY1被接地,那么就点亮LED1 LED1(1) else LED1(0)--否则熄灭LED1 end sys.wait(1000)--一秒查询一次 end end
local LED2 function GPIO_Exti_cb(msg)--中断回调函数 if msg == cpu.INT_GPIO_POSEDGE then--如果当前中断是上升沿触发 LED2(0)--熄灭LED2 else LED2(1)--否则点亮LED2 end end
local function GPIO_Exti_init() local KEY2 = pins.setup(28, GPIO_Exti_cb, pio.PULLUP)--将GPIO28初始化为输入上拉,并且启用中断回调 LED2 = pins.setup(65, 0)--将GPIO65初始化为输出 end
local function GPIO_Input_init() local KEY1 = pins.setup(27, nil, pio.PULLUP)--将GPIO27初始化为输入上拉 local LED1 = pins.setup(64, 0)--将GPIO64初始化为输出 whiletruedo if KEY1() == 0 then--如果KEY1被接地,那么就点亮LED1 LED1(1) else LED1(0)--否则熄灭LED1 end sys.wait(1000)--一秒查询一次 end end
local LED2 function GPIO_Exti_cb(msg)--中断回调函数 if msg == cpu.INT_GPIO_POSEDGE then--如果当前中断是上升沿触发 LED2(0)--熄灭LED2 else LED2(1)--否则点亮LED2 end end
local function GPIO_Exti_init() local KEY2 = pins.setup(28, GPIO_Exti_cb, pio.PULLUP)--将GPIO28初始化为输入上拉,并且启用中断回调 LED2 = pins.setup(65, 0)--将GPIO65初始化为输出 end
local function user_main() sys.wait(10000) sys.taskInit(GPIO_Input_init) sys.taskInit(GPIO_Exti_init) end