本帖最后由 kit7828 于 2022-5-18 20:10 编辑
前面的环境搭建中,已经进行了GPIO的点灯,在src下的hal_entry.c中可以看到点灯和按钮的管脚定义
P106和P105
void hal_entry(void)
{
rt_kprintf("\nHello RT-Thread!\n");
while (1)
{
rt_pin_write(LED3_PIN, PIN_HIGH);
rt_thread_mdelay(50);
rt_pin_write(LED3_PIN, PIN_LOW);
rt_thread_mdelay(50);
}
}
函数中就通过输出高低电平控制了LED3的亮和灭,而按钮的函数,采用的是中断的方式,检测上升沿
void icu_sample(void)
{
/* init */
rt_uint32_t pin = rt_pin_get(USER_INPUT);//查找管脚
rt_kprintf("\n pin number : 0x%04X \n", pin);
rt_err_t err = rt_pin_attach_irq(pin, PIN_IRQ_MODE_RISING, irq_callback_test, RT_NULL);
//附着中断,检测上升沿,回调函数为irq_callback_test
if(RT_EOK != err)
{
rt_kprintf("\n attach irq failed. \n");
}
err = rt_pin_irq_enable(pin, PIN_IRQ_ENABLE);
//使能中断
if(RT_EOK != err)
{
rt_kprintf("\n enable irq failed. \n");
}
}
MSH_CMD_EXPORT(icu_sample, icu sample);//加载到msh中
RT-Thread有个非常好用的msh功能,通过终端的方式调用命令,而这个终端是通过串口交互的
在RTT的settings中,可以看到,系统终端用的uart7
同样,在瑞萨的FSP中,也可以看到具体的硬件配置
点灯的闪烁在上一个评测中已经看到了,下面测试uart7及终端,并且通过终端测试按钮外部中断
由于uart7用到的管脚是P613和P614
打开终端窗口,选择com口,电脑上端口恰好也是COM7
需要按下复位键,才能看到RT-Thread的徽标
键入命令,就能看到msh的效果了
如有按键按下,则触发中断