本帖最后由 hu9jj 于 2022-11-15 12:41 编辑
#申请原创#
一、UART通讯测试
进入MCC,添加UART设备,同时设置好Redirect Printf to UART和Interrupt Driven,前者方便在代码中使用printf命令发送数据,后者则是方便使用中断来接收数据:
同时还需要在中断管理中开启中断:
这样就可以在程序中使用printf命令来发送数据了:
在串口接收中断里找到读取数据的代码,并在其后添加一行发送的代码,将接收到的数据原封不动地写回,就可以实现回显数据了:
这是回显的结果:
二、按键中断模式测试
在主函数中首先开启按键中断的触发模式,这里选择下降沿触发,然后指定按键中断处理的函数名:
int main(void)
{
SYSTEM_Initialize();
USART0_Enable();
printf("Hello World\r\n");
SW0_SetDigitalInput();
SW0_SetPullUp();
SW0_EnableInterruptForFallingEdge(); //设置引脚的中断模式
PF6_SetInterruptHandler(SW0_Handler); //指定中断处理的函数
TCA0_EnableInterrupt();
Led0_SetHigh();
while(1)
{
printf("wait=%d\r\n",wait);
Led0_Toggle();
DELAY_milliseconds(wait);
}
}
这是按键中断处理函数,消抖之后对wait变量进行左移一位操作,超过1600之后恢复为初始值100:void SW0_Handler(void)
{
if(0==SW0_GetValue()){
DELAY_milliseconds(50);
if(0==SW0_GetValue()){
wait <<= 1;
if(wait>1600)
wait = 100;
}
}
}
|