串口接收数据-控制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)就会提示编译错误,而第一种会赋值然后条件为真直接运行里面的程序。
相关推荐
Bona Sun1 小时前
单片机手搓掌上游戏机(二十)—pico运行doom之编译环境
c语言·c++·单片机·游戏机
偶像你挑的噻4 小时前
16-Linux驱动开发-多核通信中的并发控制
linux·驱动开发·stm32·嵌入式硬件
编码追梦人5 小时前
基于 ESP32 的多人无线答题竞赛系统设计与实现
单片机·嵌入式硬件
yyycqupt5 小时前
蓝牙协议栈的学习(二)
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·iot
ACP广源盛139246256735 小时前
GSV2125D@ACP#GSV6125#HDMI 2.0 转 DisplayPort 1.4 转换器(带嵌入式 MCU)
嵌入式硬件·计算机外设·音视频
贝塔实验室8 小时前
新手如何使用Altium Designer创建第一张原理图(二)
arm开发·fpga开发·硬件工程·dsp开发·射频工程·基带工程·嵌入式实时数据库
s1ckrain8 小时前
数字逻辑笔记—组合逻辑电路
笔记·fpga开发·嵌入式
ℳ๓. Sweet8 小时前
【从零开发STM32(HAL版)】一、开发硬件环境准备
stm32·单片机·嵌入式硬件
ACP广源盛139246256738 小时前
GSV2202D@ACP#DisplayPort 1.4 到 HDMI 2.0 转换器(带嵌入式 MCU)
单片机·嵌入式硬件·计算机外设·音视频
梓德原9 小时前
【总结】STM32 SPI DMA 的使用
stm32·单片机·嵌入式硬件