串口接收数据-控制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)就会提示编译错误,而第一种会赋值然后条件为真直接运行里面的程序。
相关推荐
BackCatK Chen2 小时前
第15篇:TMC2240闭环控制软件实现|编码器数据融合+丢步修正(保姆级)
嵌入式硬件·闭环控制·tmc2240·stm32实战·编码器数据融合·丢步修正·定位精度优化
隔壁大炮2 小时前
I2C通信协议
单片机·嵌入式硬件·铁头山羊
凌晨7点3 小时前
DSP学习F28004x数据手册:第13章-ADC
单片机·嵌入式硬件·学习
非鱼䲆鱻䲜5 小时前
淘晶驰串口屏使用波形图控件,接收单片机或者串口助手数据生成图像的区别
单片机·嵌入式·串口屏
J-TS8 小时前
线性自抗扰控制LADRC
c语言·人工智能·stm32·单片机·算法
太空1号10 小时前
SystemVerilog小白入门3,UVM的uvm_object初体验
fpga开发
撩妹小狗10 小时前
单片机中断原理
stm32·单片机
码农三叔11 小时前
(1-1)人形机器人感知系统概述: 人形机器人感知的特点与挑战
人工智能·嵌入式硬件·机器人·人机交互·人形机器人
上海合宙LuatOS11 小时前
LuatOS核心库API——【hmeta 】硬件元数据
单片机·嵌入式硬件·物联网·算法·音视频·硬件工程·哈希算法
cameron_tt12 小时前
定时器中断应用 HC-SR04超声波测距模块、定时器输出PWM应用 控制SG90舵机
c语言·嵌入式硬件