串口接收数据-控制LED灯

这篇具有很好参考价值的文章主要介绍了串口接收数据-控制LED灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目标

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

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

实现

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

7 6 5 4 3 2 1 0
0x55 0xA5 time[31:0] ctrl[7:0] 0xF0

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

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

硬件

串口:

串口接收数据-控制LED灯,FPGA,fpga开发,单片机,嵌入式硬件
串口接收数据-控制LED灯,FPGA,fpga开发,单片机,嵌入式硬件
XC6206P332MR特点:
输出电压:3.3V(固定输出电压版本)
输入电压范围:2.5V - 6.0V
最大输出电流:约200mA
静态电流:典型值为30μA(在无负载时)
超低压降:具有较低的输入输出压差
过压保护:当输入电压超过设定阈值时自动切断输出
过电流保护:在输出短路或超过最大输出电流时自动切断输出
短路保护:在输出短路情况下自动切断输出,以保护芯片和其他电路

串口接两个LED灯:用于收发信息指示,最好使用两种颜色的灯。

稳压二极管:限制传输到FPGA的电压,防止电压过高,损坏FPGA。

LEDGPIO:

串口接收数据-控制LED灯,FPGA,fpga开发,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-681410.html

软件

/****************顶层********************/
uart_rx_ctrl_led(
    Clk,
    Reset_n,
    Led,
    uart_rx    
    );
    input Clk;
    input Reset_n;
    output wire[7:0]Led;
    input uart_rx;
    
/****************led控制********************/
    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)就会提示编译错误,而第一种会赋值然后条件为真直接运行里面的程序。

到了这里,关于串口接收数据-控制LED灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA串口接收解帧、并逐帧发送有效数据-2

    工程实现的功能:FPGA串口接收到串口调试助手发来的数据,将其数据解帧。判断到正确的帧头和帧尾之后,将有效数据存入rx_data中;另一方面发送端将有效数据逐帧发送出去。 参考:正点原子官方FPGA串口通信实验 模块构成: 在原子哥的基础上改的代码。 添加了接收状态机

    2024年02月05日
    浏览(35)
  • FPGA_数码管显示UART串口接收的数据

          实验目标 :通过电脑调试助手向FPGA的UART串口接收模块发送数据,然后数据可以稳定显示 在数码管上。       实验目的 : 练习UART串口模块和数码管的使用。之前已经有文章详细讲解了串口和数码管的开发,故这里直接提供设计思路供大家参考。 (串口文章链接)ht

    2024年02月13日
    浏览(46)
  • 【51单片机】串口通信&&使用串口通信控制LED灯

    🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Promise】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🍔串口通信 😎代码   🍔串口初始化 ⭐分析  🏳️‍🌈确定T1的工作方式 🎈TMOD=0X20;  🏳️‍🌈确定T1的初值 🎈

    2024年02月17日
    浏览(44)
  • FPGA Verilog 控制CAN接收发送数据帧(标准/扩展),遥控帧(标准/扩展)

    使用Verilog接收发送,CAN数据帧和远程帧,由于条件有限,并没有实际下载到办卡上验证,只做了仿真验证,后续准确性验证后再行修改。 (1)标准数据帧: (2)扩展数据帧: (3)标准遥控帧 与数据帧的区别就是没有数据字段; (4)扩展遥控帧 系统时钟为100Mhz,CAN通信频

    2024年02月16日
    浏览(42)
  • FPGA实现串口的任意字节数接收

    目录 1、概述 2、串口接收驱动 3、任意字节接收的实现方法 4、仿真

    2024年02月09日
    浏览(35)
  • 电脑通过串口控制51单片机的LED

    在电脑端的串口助手通过串口对51单片机发送一个字节的16进制数控制LED的亮灭 单片机通过串口将接收到的数据发送回电脑 51 单片机内部自带 UART ( Universal Asynchronous Receiver Transmitter ,通用异步收发器),可实现单片机的串口通信 STC89C52有 1 个 UART,有四种通信模式: 模式

    2024年02月09日
    浏览(46)
  • FPGA解析串口指令控制spi flash完成连续写、读、擦除数据

    最近在收拾抽屉时找到一个某宝的spi flash模块,如下图所示,我就想用能不能串口来读写flash,大致过程就是,串口向fpga发送一条指令,fpga解析出指令控制flah,这个指令协议目前就是: 55 + AA + CMD + LEN_h + LEN_m + LEN_l + DATA CMD:01 写;02 读;03 擦除(片擦除); LEN_h/m/l:三个字

    2024年02月03日
    浏览(42)
  • FPGA之按键控制LED

    一、按键开关        1、按键开关(轻触开关):主要是指轻触式按键开关,属于电子元器件类,使用时以满足操作力的条件向开关操作方向施压开关功能闭合接通,当撤销压力时开关即断开,其内部结构是靠金属弹片受力变化来实现通断的。        2、自锁按键:在开关

    2024年02月08日
    浏览(60)
  • 摁键控制LED灯(FPGA)

    提示:以下是本篇文章正文内容,下面案例可供参考 1.无按键按下时,LED灯全灭; 2.按键1按下时,LED灯显示.自右向左的流水效果; 3.按键2按下时,LED灯显示自左向右的流水效果; 4.按键3按下时,四个LED灯同时闪烁 5.按键4按下时,LED灯全亮 如图1所示,本实验使用四个按键开

    2024年02月08日
    浏览(37)
  • FPGA-串口接收图像写入RAM并读出在TFT显示屏上显示

    需要用到的模块有: 1,UART_RX(串口接收模块); 2,串口接受的数据存放到RAM模块; 3,RAM IP核; 4,时钟IP核 (TFT显示屏驱动时钟的产生); 5,TFT显示驱动模块; 具体构建方式及详见(其中的串口接收部分) FPGA-UART串口 https://blog.csdn.net/weixin_46897065/article/details/135586405?spm=

    2024年03月19日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包