18.5.3
下载验证
保证开发板相关硬件连接正确,用Type-C USB线连接开发板“USB TO UART”接口跟电脑。本次实验需要使用到串口调试助手,配置好串口参数并打开串口后,在调试助手的发送区域输入任意字符并点击发送,即可在接收区看见相同字符,如图19_17。

图19-17 实验1 下载验证
18.6
实验2:UART指令控制RGB灯
正如之前所讲,可以在串口调试助手输入指令,让开发板根据这些指令执行一些任务,现在我们编写程序让开发板接收UART数据,然后根据数据内容控制RGB彩灯的颜色。
18.6.1
硬件设计
本实验使用到开发板的串口和LED灯,其原理图在本章实验1和前面的点亮LED灯章节有介绍,这里不进行赘述。
18.6.2
软件设计
18.6.2.1
新建工程
因为本节的UART实验例程与上一个实验例程的FSP配置以及UART相关的一些代码基本一致,因此我们可以直接以前面的“19_UART_Receive_Send”工程为基础进行修改。
对于e2 studio开发环境:拷贝一份我们之前的e2s工程模板“19_UART_Receive_Send”,然后将工程文件夹重命名为“19_UART_LED_Control”,最后再将它导入到我们的e2 studio工作空间中。
对于Keil开发环境:拷贝一份我们之前的Keil工程模板“19_UART_Receive_Send”,然后将工程文件夹重命名为“19_UART_LED_Control”,并进入该文件夹里面双击Keil工程文件,打开该工程。
FSP配置完全一致,因此我们省略掉这部分。
18.6.2.2
串口中断回调函数
我们需要在串口中断回调函数,也就是debug_uart4_callback函数里判断接收到的字符,并根据所接收到的不同字符做出不同的操作。修改debug_uart4_callback函数的代码,如下所示。
列表6:代码清单19-5:串口中断回调函数
左右滑动查看完整内容
/* 串口中断回调 */
voiddebug_uart4_callback(uart_callback_args_t * p_args)
{
switch (p_args->event)
{
case UART_EVENT_RX_CHAR:
{
/* 根据字符指令控制 RGB 彩灯颜色 */
switch (p_args->data)
{
case'1':
LED1_ON;
break;
case'2':
LED2_ON;
break;
case'3':
LED3_ON;
break;
case'4':
LED1_OFF;
break;
case'5':
LED2_OFF;
break;
case'6':
LED3_OFF;
break;
case'7':
LED1_ON; LED2_ON; LED3_ON;
break;
case'8':
LED1_OFF; LED2_OFF; LED3_OFF;
break;
default:
break;
}
break;
}
case UART_EVENT_TX_COMPLETE:
{
uart_send_complete_flag = true;
break;
}
default:
break;
}
}
18.6.2.3
hal_entry入口函数
在hal_entry函数里面我们进行硬件初始化之后,首先打印提示信息,提醒用户从串口输入数字字符。然后默认关闭所有LED灯,在while循环里什么都不做,等待用户的输入。
列表7:代码清单19-6:hal_entry入口函数
左右滑动查看完整内容
voidhal_entry(void)
{
/* TODO: add your own code here */
LED_Init(); // LED 初始化
Debug_UART4_Init(); // SCI4 UART 调试串口初始化
printf("这是一个串口控制 LED 例程
");
printf("打开串口助手发送以下指令,控制 LED 的状态
");
printf (" 指令 ------ 状态
");
printf (" 1 ------ LED1_ON
");
printf (" 2 ------ LED2_ON
");
printf (" 3 ------ LED3_ON
");
printf (" 4 ------ LED1_OFF
");
printf (" 5 ------ LED2_OFF
");
printf (" 6 ------ LED3_OFF
");
printf (" 7 ------ LED 全亮
");
printf (" 8 ------ LED 全灭
");
LED1_OFF; LED2_OFF; LED3_OFF; //默认关闭所有 LED 灯
while(1)
{
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
18.6.3
下载验证
保证开发板相关硬件连接正确,用Type-C线连接开发板“USB TO UART”接口跟电脑,在电脑端打开串口调试助手,把编译好的程序下载到开发板,此时串口调试助手即可收到开发板发过来的数据。我们在串口调试助手发送区域输入一个特定字符,点击发送按钮,LED灯状态随之改变。
全部0条评论
快来发表一下你的评论吧 !