本帖最后由 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;
- }
- }
- }
|