串口接收数据-控制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. 顶层连接

硬件

串口GPIO:


LEDGPIO:

软件

c 复制代码
/****************顶层********************/
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)就会提示编译错误,而第一种会赋值然后条件为真直接运行里面的程序。
相关推荐
竹照煜_ysn35 分钟前
STM32
stm32·单片机·嵌入式硬件
蓬荜生灰2 小时前
永磁无刷电机旋转原理
单片机·嵌入式硬件
forgeda5 小时前
如何将FPGA设计验证效率提升1000倍以上(2)
fpga开发·前沿技术·在线调试·硬件断点·时钟断点·事件断点
Ronin-Lotus7 小时前
嵌入式硬件与应用篇---寄存器GPIO控制
stm32·单片机·嵌入式硬件·微处理器原理与应用
星辰pid14 小时前
STM32控制四自由度机械臂(SG90舵机)(硬件篇)(简单易复刻)
stm32·单片机·嵌入式硬件·机械臂
威桑15 小时前
STM32 专有名词缩写整合
stm32·单片机·嵌入式硬件
9527华安16 小时前
FPGA实现40G网卡NIC,基于PCIE4C+40G/50G Ethernet subsystem架构,提供工程源码和技术支持
fpga开发·架构·网卡·ethernet·nic·40g·pcie4c
星源~16 小时前
tree 命令集成到 Git Bash:可视化目录结构的指南
git·单片机·物联网·嵌入式·项目开发
SKYDROID云卓小助手17 小时前
无人设备遥控器之自动调整编码技术篇
人工智能·嵌入式硬件·算法·自动化·信号处理
所念皆星海91117 小时前
图灵完备之路(数电学习三分钟)----数据选择器与总线
嵌入式硬件·通信·数电