0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UART指令控制RGB灯实验

瑞萨嵌入式小百科 来源:瑞萨嵌入式小百科 2025-10-27 11:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

18.5.3

下载验证

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

7b32c44c-ad6a-11f0-8c8f-92fbcf53809c.png

图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”工程为基础进行修改。

对于e2studio开发环境:拷贝一份我们之前的e2s工程模板“19_UART_Receive_Send”,然后将工程文件夹重命名为“19_UART_LED_Control”,最后再将它导入到我们的e2studio工作空间中。

对于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)
{
}


#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}

18.6.3

下载验证

保证开发板相关硬件连接正确,用Type-C线连接开发板“USB TO UART”接口跟电脑,在电脑端打开串口调试助手,把编译好的程序下载到开发板,此时串口调试助手即可收到开发板发过来的数据。我们在串口调试助手发送区域输入一个特定字符,点击发送按钮,LED灯状态随之改变。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    243

    文章

    24454

    浏览量

    687875
  • RGB
    RGB
    +关注

    关注

    4

    文章

    820

    浏览量

    61557
  • 串口
    +关注

    关注

    15

    文章

    1607

    浏览量

    82008
  • uart
    +关注

    关注

    22

    文章

    1304

    浏览量

    106154
  • 开发板
    +关注

    关注

    26

    文章

    6150

    浏览量

    113891

原文标题:实验2:UART指令控制RGB灯——瑞萨RA系列FSP库开发实战指南(48)

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GD32F310连接ESP8266实现远程控制

    通过mcu与esp01通过uart连接,通过at指令来创建socket连接,接收远端控制指令,来实现
    的头像 发表于 09-22 18:10 3803次阅读
    GD32F310连接ESP8266实现远程<b class='flag-5'>灯</b><b class='flag-5'>控制</b>

    无线控制RGB三色系统

    RGB三色动作。当需要彩灯变换时,可由PC机发送相应的花色变换指令,由无线发射模块将该指令发射出去,无线接收模块接收到该指令,并通过
    发表于 11-15 14:37

    LEDRGB蓝牙4.0控制方案

    LEDRGB蓝牙4.0控制方案1.蓝牙4.0为3合1蓝牙技术,其中包含传统蓝牙(Bluetooth)、高速蓝牙(Bluetooth+HS)和低功耗蓝牙(Bluetooth Low Energy简称
    发表于 02-14 14:59

    【MiCO教学贴】MiCO 团队再放体验,语音控制 RGB

    的 MiCOKit 的固件是 3Cloud_RGB_Humiture微信控制RGB和读取温湿度传感器数值 Cloud_RGB_HumitureAPP端功能逻辑说明:-------- 语
    发表于 08-05 10:23

    RGB LED控制器的资料分享

    描述RGB LED控制
    发表于 09-09 07:44

    如何使用MS51 PWM来控制UARTRGB LED

    应用:本样本代码使用MS51 PWM来控制UARTRGB LED。 BSP 版本: MS51_Series_BSP_Keil_V1.00.004 硬件:NuTiny-MS51FB V1.1 此
    发表于 08-29 06:03

    交通控制实验

    交通控制实验一)实验目的通过并行接口8255实现十字路口交通的模拟控制,进一步掌握对并行口的
    发表于 03-25 11:03 8060次阅读
    交通<b class='flag-5'>灯</b><b class='flag-5'>控制</b><b class='flag-5'>实验</b>

    RGB Led是什么?

    RGB Led是什么? RGB LED与白光LED两者其实都是希望达到白光的效果,只不
    发表于 11-18 13:41 2.5w次阅读

    用自己声音或智能手机控制RGB LED带实现梦幻效果

    本项目将使用智能手机设置RGB LED带的颜色,这些RGB带内建蓝牙功能,可接收智能手机上的android应用程序发送的指令。这样,我们
    的头像 发表于 07-15 09:11 7927次阅读
    用自己声音或智能手机<b class='flag-5'>控制</b><b class='flag-5'>RGB</b> LED<b class='flag-5'>灯</b>带实现梦幻效果

    RGB LED控制器开源分享

    电子发烧友网站提供《RGB LED控制器开源分享.zip》资料免费下载
    发表于 08-18 14:41 20次下载
    <b class='flag-5'>RGB</b> LED<b class='flag-5'>灯</b><b class='flag-5'>控制</b>器开源分享

    蓝牙控制RGB开源分享

    电子发烧友网站提供《蓝牙控制RGB开源分享.zip》资料免费下载
    发表于 12-12 11:20 11次下载
    蓝牙<b class='flag-5'>控制</b>的<b class='flag-5'>RGB</b><b class='flag-5'>灯</b>开源分享

    Arduino控制RGB LED

    电子发烧友网站提供《Arduino控制RGB LED条.zip》资料免费下载
    发表于 12-29 11:39 4次下载
    Arduino<b class='flag-5'>控制</b>的<b class='flag-5'>RGB</b> LED<b class='flag-5'>灯</b>条

    自动RGB/氛围

    电子发烧友网站提供《自动RGB/氛围.zip》资料免费下载
    发表于 02-13 16:32 13次下载
    自动<b class='flag-5'>RGB</b>/氛围<b class='flag-5'>灯</b>

    使用Arduino的Android控制RGB LED

    电子发烧友网站提供《使用Arduino的Android控制RGB LED条.zip》资料免费下载
    发表于 07-05 09:45 2次下载
    使用Arduino的Android<b class='flag-5'>控制</b><b class='flag-5'>RGB</b> LED<b class='flag-5'>灯</b>条

    UART软件控制RGB LED混色与MSP430™ MCU

    电子发烧友网站提供《UART软件控制RGB LED混色与MSP430™ MCU.pdf》资料免费下载
    发表于 10-09 11:41 0次下载
    <b class='flag-5'>UART</b>软件<b class='flag-5'>控制</b>的<b class='flag-5'>RGB</b> LED混色与MSP430™ MCU