18.5.3
下載驗(yàn)證
保證開發(fā)板相關(guān)硬件連接正確,用Type-C USB線連接開發(fā)板“USB TO UART”接口跟電腦。本次實(shí)驗(yàn)需要使用到串口調(diào)試助手,配置好串口參數(shù)并打開串口后,在調(diào)試助手的發(fā)送區(qū)域輸入任意字符并點(diǎn)擊發(fā)送,即可在接收區(qū)看見相同字符,如圖19_17。

圖19-17 實(shí)驗(yàn)1 下載驗(yàn)證
18.6
實(shí)驗(yàn)2:UART指令控制RGB燈
正如之前所講,可以在串口調(diào)試助手輸入指令,讓開發(fā)板根據(jù)這些指令執(zhí)行一些任務(wù),現(xiàn)在我們編寫程序讓開發(fā)板接收UART數(shù)據(jù),然后根據(jù)數(shù)據(jù)內(nèi)容控制RGB彩燈的顏色。
18.6.1
硬件設(shè)計(jì)
本實(shí)驗(yàn)使用到開發(fā)板的串口和LED燈,其原理圖在本章實(shí)驗(yàn)1和前面的點(diǎn)亮LED燈章節(jié)有介紹,這里不進(jìn)行贅述。
18.6.2
軟件設(shè)計(jì)
18.6.2.1
新建工程
因?yàn)楸竟?jié)的UART實(shí)驗(yàn)例程與上一個(gè)實(shí)驗(yàn)例程的FSP配置以及UART相關(guān)的一些代碼基本一致,因此我們可以直接以前面的“19_UART_Receive_Send”工程為基礎(chǔ)進(jìn)行修改。
對(duì)于e2studio開發(fā)環(huán)境:拷貝一份我們之前的e2s工程模板“19_UART_Receive_Send”,然后將工程文件夾重命名為“19_UART_LED_Control”,最后再將它導(dǎo)入到我們的e2studio工作空間中。
對(duì)于Keil開發(fā)環(huán)境:拷貝一份我們之前的Keil工程模板“19_UART_Receive_Send”,然后將工程文件夾重命名為“19_UART_LED_Control”,并進(jìn)入該文件夾里面雙擊Keil工程文件,打開該工程。
FSP配置完全一致,因此我們省略掉這部分。
18.6.2.2
串口中斷回調(diào)函數(shù)
我們需要在串口中斷回調(diào)函數(shù),也就是debug_uart4_callback函數(shù)里判斷接收到的字符,并根據(jù)所接收到的不同字符做出不同的操作。修改debug_uart4_callback函數(shù)的代碼,如下所示。
列表6:代碼清單19-5:串口中斷回調(diào)函數(shù)
左右滑動(dòng)查看完整內(nèi)容
/* 串口中斷回調(diào) */
voiddebug_uart4_callback(uart_callback_args_t * p_args)
{
switch (p_args->event)
{
case UART_EVENT_RX_CHAR:
{
/* 根據(jù)字符指令控制 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入口函數(shù)
在hal_entry函數(shù)里面我們進(jìn)行硬件初始化之后,首先打印提示信息,提醒用戶從串口輸入數(shù)字字符。然后默認(rèn)關(guān)閉所有LED燈,在while循環(huán)里什么都不做,等待用戶的輸入。
列表7:代碼清單19-6:hal_entry入口函數(shù)
左右滑動(dòng)查看完整內(nèi)容
voidhal_entry(void)
{
/*TODO:add your own code here */
LED_Init();// LED 初始化
Debug_UART4_Init();// SCI4 UART 調(diào)試串口初始化
printf("這是一個(gè)串口控制 LED 例程
");
printf("打開串口助手發(fā)送以下指令,控制 LED 的狀態(tài)
");
printf (" 指令 ------ 狀態(tài)
");
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;//默認(rèn)關(guān)閉所有 LED 燈
while(1)
{
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
18.6.3
下載驗(yàn)證
保證開發(fā)板相關(guān)硬件連接正確,用Type-C線連接開發(fā)板“USB TO UART”接口跟電腦,在電腦端打開串口調(diào)試助手,把編譯好的程序下載到開發(fā)板,此時(shí)串口調(diào)試助手即可收到開發(fā)板發(fā)過來的數(shù)據(jù)。我們?cè)诖谡{(diào)試助手發(fā)送區(qū)域輸入一個(gè)特定字符,點(diǎn)擊發(fā)送按鈕,LED燈狀態(tài)隨之改變。
-
led
+關(guān)注
關(guān)注
243文章
24341瀏覽量
685060 -
RGB
+關(guān)注
關(guān)注
4文章
819瀏覽量
61228 -
串口
+關(guān)注
關(guān)注
15文章
1602瀏覽量
81585 -
uart
+關(guān)注
關(guān)注
22文章
1292瀏覽量
105827 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
6029瀏覽量
110754
原文標(biāo)題:實(shí)驗(yàn)2:UART指令控制RGB燈——瑞薩RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南(48)
文章出處:【微信號(hào):瑞薩嵌入式小百科,微信公眾號(hào):瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
GD32F310連接ESP8266實(shí)現(xiàn)遠(yuǎn)程燈控制
無線控制RGB三色燈系統(tǒng)
LED燈RGB藍(lán)牙4.0控制方案
【MiCO教學(xué)貼】MiCO 團(tuán)隊(duì)再放體驗(yàn),語音控制 RGB 燈
如何使用MS51 PWM來控制UART的RGB LED
交通燈控制實(shí)驗(yàn)
用自己聲音或智能手機(jī)控制RGB LED燈帶實(shí)現(xiàn)夢(mèng)幻效果
藍(lán)牙控制的RGB燈開源分享
Arduino控制的RGB LED燈條
使用Arduino的Android控制RGB LED燈條
UART軟件控制的RGB LED混色與MSP430? MCU

UART指令控制RGB燈實(shí)驗(yàn)
評(píng)論