[AIROC™ 蓝牙] 【英飞凌CYW20829测评】2、串口控制板载LED

[复制链接]
1651|7
 楼主| lulugl 发表于 2024-6-22 13:41 | 显示全部楼层 |阅读模式
在上篇:【英飞凌CYW20829测评】1、开发环境建立 - 英飞凌MCU技术论坛 - 21ic电子技术开**坛
在其工程基础之上,添加串口接收与LED交互。
1、新建一个接收字符串数组,用于存放接到的数据
  1. //添加接收buff长度
  2. #define RECVE_MAX_LEN    64
  3. //添加接收缓冲区
  4.     char recv_buff[RECVE_MAX_LEN] = {0};
  5.     uint8_t recv_cnt = 0;
2、声明两个字符串,用于命令的判断
  1. const char blinkoff[] = "LEDBLINKSTOP";
  2.     const char blinkon[] = "LEDBLINKSTART";
3、每接收一个字符,判断是否为结束符,如果不是,将接收的字符串放于缓冲区:
  1. if(recv_cnt >= RECVE_MAX_LEN)
  2.                     {
  3.                             recv_cnt = 0;
  4.                     }
  5.                     recv_buff[recv_cnt] = uart_read_value;
  6.                     recv_cnt++;
4、如果接收到的回车符,则进行命令判断,判断后清空缓冲区,并把计数器归零。
  1.             if (uart_read_value == '\n' || uart_read_value == '\r' )
  2.             {
  3.                     printf("recv cmd:%s\r\n",recv_buff);

  4.                     if (0 == strcmp(recv_buff,blinkoff))
  5.                     {

  6.                             cyhal_timer_stop(&led_blink_timer);
  7.                             printf("LED blinking paused \r\n");
  8.                     }
  9.                     else if(0 == strcmp(recv_buff,blinkon))
  10.                     {
  11.                             cyhal_timer_start(&led_blink_timer);
  12.                             printf("LED blinking start\r\n");

  13.                     }
  14.                     printf("recv cmd:%s\r\n",recv_buff);
  15.                     memset(recv_buff,0,RECVE_MAX_LEN);
  16.                     recv_cnt = 0;
【实验现象】
发送停止与开始命令,从串口返回相应的指令,并同时更新LED的显示。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
中国龙芯CDX 发表于 2024-6-27 10:09 | 显示全部楼层
楼主使用的哪一款IDE?
tpgf 发表于 2024-6-27 16:03 | 显示全部楼层
上下位的通讯内容如何定义才比较的精简呢
keaibukelian 发表于 2024-6-27 16:15 | 显示全部楼层
板载led的硬件上是如何连接的呢
paotangsan 发表于 2024-6-27 17:53 | 显示全部楼层
肉眼可见的led的变化的最小时间间隔是多少呢
heimaojingzhang 发表于 2024-6-27 19:45 | 显示全部楼层
如果使用这种字符串的话 我感觉有点浪费串口的资源啊
晓伍 发表于 2024-6-28 10:00 | 显示全部楼层
这种简单的控制并不需要多高的串口通讯速率
观海 发表于 2024-6-28 12:53 | 显示全部楼层
什么情况下会导致每包数据被拆分了呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

188

主题

844

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部