我的编程空间,编程开发者的网络收藏夹
学习永远不晚

串口接收数据-控制LED灯

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

串口接收数据-控制LED灯

目标

通过串口接收数据,对数据分析,控制8个LED灯按照设定时间闪烁。

  1. 8个LED灯可以任意设计,是否闪烁。
  2. 闪烁时间按ms计算,通过串口发送,可设置1~4,294,967,296ms,也就是4字节数据
  3. 协议自拟,有数据报文头和尾

实现

串口接收8字节数据,2字节头+4字节time+1字节LED+1字节尾
数据协议定义:

765 4 3 210
0x550xA5time[31:0]ctrl[7:0]0xF0

分析到一帧完整数据就可是提取并设置LED闪烁样式。
模块划分:

  1. 串口接收
  2. 串口数据分析
  3. LED控制
  4. 顶层连接

硬件

串口GPIO:

在这里插入图片描述
在这里插入图片描述
LEDGPIO:
在这里插入图片描述

软件

uart_rx_ctrl_led(    Clk,    Reset_n,    Led,    uart_rx        );    input Clk;    input Reset_n;    output wire[7:0]Led;    input uart_rx;        wire [7:0] ctrl;    wire [31:0] time_set;    counter_led counter_led(    .Clk(Clk),    .Reset_n(Reset_n),    .Ctrl_data(ctrl),    .Time(time_set),    .led(Led)    );      wire [7:0]rx_data;    wire rx_done;    uart_rx uart_rx_in(    .Clk(Clk),    .Reset_n(Reset_n),    .Baund_set(4),    .uart_Rx(uart_rx),    .Data(rx_data),    .Rx_Done(rx_done)    );    uart_cmd uart_cmd(        .Clk(Clk),        .Reset_n(Reset_n),        .rx_data(rx_data),        .rx_done(rx_done),        .ctrl(ctrl),        .time_set(time_set)        );

注意

  1. 数据分析采用——检测缓冲区,不断去检测该缓冲区首尾,是否符合要求。
  2. 在进行时间赋值时,采用 if(tims_ms == time_set)进行清空,不好的地方就是time_ms>time_set时不会进行清空,直到计数溢出重新计到设定值,所以这地方要改成if( time_ms >= time_set )时对time_ms清空。
  3. 对于判断中有数字与变量的判断要养成把数字写在前的习惯,能避免if( time = 10)这种错误,if(10 = time)就会提示编译错误,而第一种会赋值然后条件为真直接运行里面的程序。

来源地址:https://blog.csdn.net/qq_30255657/article/details/132563322

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

串口接收数据-控制LED灯

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

串口接收数据-控制LED灯

目标 通过串口接收数据,对数据分析,控制8个LED灯按照设定时间闪烁。 8个LED灯可以任意设计,是否闪烁。闪烁时间按ms计算,通过串口发送,可设置1~4,294,967,296ms,也就是4字节数据协议自拟,有数据报文头和尾 实现 串口接
2023-08-30

linux如何查看串口接收数据

可以使用minicom命令来查看Linux系统上的串口接收数据。首先,确保已经安装了minicom。如果没有安装,可以使用以下命令安装:```sudo apt-get install minicom```然后,使用以下命令打开minicom
2023-09-16

如何在java控制台中接收数据

如何在java控制台中实现接收数据?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java从控制台接收一个数字的实例详解功能:从控制台接收一个数实现代码:import jav
2023-05-31

c#串口怎么判断数据接收完成

在 c# 中判断串口数据接收完成的方法有:datareceived 事件触发时,bytestoread 为零;serialport.read() 方法返回的字节数组长度为零;readbuffersize 小于 receivebuffersi
c#串口怎么判断数据接收完成
2024-05-12

qt串口接收数据后怎么进行解析

要对Qt串口接收到的数据进行解析,您可以按照以下步骤进行操作:1. 在Qt中打开串口并设置相应的参数,包括波特率、数据位、校验位、停止位等。2. 创建一个槽函数,用于处理接收到的串口数据。可以使用QSerialPort的readyRead(
2023-10-18

qt串口接收大量数据导致卡顿怎么解决

如果Qt串口接收大量数据导致卡顿,可以尝试以下几种解决办法:1. 优化串口接收代码:确保串口接收代码是高效的,可以使用Qt提供的异步读取方式,避免在接收数据时阻塞主线程。可以使用`readyRead()`信号来触发数据接收,并在槽函数中使用
2023-09-22

编程热搜

目录