- 博客(18)
- 收藏
- 关注
原创 串口发送多bit优化:在测试文件里修改传输长度和传输的数据
send_byte|是单字节串口发送state|控制多bit整体右移8bit来更新传给send_byte串口模块的值top|给state模块发送想传输字节的Data数值和长度length
2024-10-31 14:45:02 174
原创 在windows上面部署C编译环境 最最最 简单的方法!
在windows上面部署C编译环境 最最最 简单的方法!1. 下载vscode2. 在vscode上面的插件中心,下载WSL3. 点左下角4. 连接上之后,打开终端5. 编译成功
2024-09-23 20:00:04 267 1
原创 用状态机的形式调用串口发送多bit数据
其中的端口以及变量的含义是:端口含义信号发送部分send_byte通过send_byte模块实现,该模块用于将数据通过串行方式发送。数据计数器Data_cnt用于记录发送的数据个数。当计数器达到最大值时,需要清0。数据缓存Data1用于存储待发送的数据。当发送完成后,需要将数据移位发送控制send_go用于控制数据的发送过程。当接收到发送请求时,根据计数器值和发送完成状态决定是否继续发送。发送完成标志tx_done用于记录发送是否完成。数据发送状态data根据发送控制状态决定发送的数据。
2024-09-16 18:09:00 2215
原创 用串口来发送信号发生器的数据
梅哥的视频P14集,后半部分讲,能不能通过在大模块中操作一个控制信号send_go,进而影响子模块(就是串口模块,以下称串口模块)种的send_en信号,进而来操控串口发送数据的节奏呢?↓↓↓想要在大模块中操纵send_go信号,那就需要在大模块中给send_go信号赋值。而send_go信号的变化凭借的是:信号发生器希望在哪一个时刻发送数据,这完全取决于信号发生器的设置。当然,由于我还没学到写信号发生器的模块,所以假设不随信号发生器的喜好,随我的喜好。我选择每隔10ms通过串口发送8bit数据。
2024-09-07 09:44:05 1392
原创 串口发送数据
大模块涵盖下面的端口 ↓子模块涵盖下面的端口 ↓input [2:0] time_set , //基础计数器的设置这是之前串口发送8bit的模块,这个模块在这次的项目中称作子模块。子模块中有两个输出,5个输入。在之前的项目中,子模块的三个输入↓是在tb文件里面写成了激励信号所以现在的大模块,把要send_en、data写好。又因为需要一个10ms计时器,所以需要再写一个cnt_10ms。总共三个模块要在大模块里写完:send_en、data、cnt_10ms。
2024-09-05 23:49:21 577
原创 串口发送8bit数据
首先,晶振带动时钟,时钟开始以20ns的节奏循环往复地跳动;在时钟的指挥下,rst_n复位信号也开始在一定的时间后拉高。一旦rst_n拉高,cnt、cnt2、send_en、tx_done就要开始分别执行各自的工作了。cnt初始值为0;cnt2初始值也为0,cnt2为零对应的程序是要发送start信号。
2024-08-26 11:04:53 1820 1
原创 隔10ms让led亮8种状态1010_1010
想要让一个led灯每隔10ms就重新按照 1010_1010 流一遍。其中 1 代表高电平,0 代表低电平。右边是低位,左边是高位。也就是先灭,再亮,再灭,再亮…直到亮完最后一位。这个过程包含在10ms内,10ms一到,重新发数据,然后先灭,再亮,再灭,再亮…直到亮完最后一位…一直重复。
2024-08-20 13:58:13 804
原创 让一个灯刚开始以0.1s的频率亮灭;再以0.2s的频率亮灭。亮灭的模式是1001,还是1100,全都由自己指定。
之前项目里面都是有一开始指定的参数决定亮灭之间的间隔,现在把间隔时间作为一个输入端口,来增加自由度,之后调试可以改变灯的亮灭频率。到最后一个marker以2ms为频率传输的一个完整周期已经完成。在两毫秒的频率传输信号的周期里,第三个到第四个marker之间传输的为1 0。第一个marker到第三个marker是完整的一个信号传输周期。从第三个marker到第四个marker之间仍是在 以一毫秒为变化频率 的信号传输周期内。, 测试的时候可以给时间端口赋值,相当于从其他设备传过来的时间。
2024-08-16 22:11:08 257
原创 让灯在相应的时刻,跟随输入的8位2进制数闪烁
我在0.25s,0.5s,0.75s…我想让led在0.25s时刻亮,0.5s时刻亮,0.75s时刻灭,1s时刻亮…仿真的时候,我觉得0.25s对应的12_500_000次太多,仿真跑得慢,因此我改小了 参数的值,变成125,但是因此我仿真之后,cnt 和 cnt2 都跑出了高阻态。我一开始12500_000,没有高阻态,现在我改小了,相当于从0.25s变成了2.5us。我们都知道如果一块板子上的晶振是50M,那么就意味着,系统时钟1s最多可以震动50M次,那么我可以算出0.25s,晶振震动的频率。
2024-08-16 16:44:56 419
原创 让一个灯有参差的亮灭起来
给计数器不同的时间节点,加上执行语句。比如1s的时候led干什么;2s时刻的时候,led又要干什么。这个实验和之前那个相比,现在是在一个灯上变化量灭时间。因为 initial 语句是顺序执行的,那么我下一次的时钟会在200ns之后变化。,指指路,闲聊FPGA,什么都可以,我很无聊,现在日常就是。这样看起来更清楚,也不会出错。,希望有人可以和我说话。
2024-08-15 22:21:27 177
原创 4个灯按照不同频率发光
所以我把output的led,设置为了wire。原本我想的是设置成reg,后来vivado提示。最后我想到了,我把reg类型的led[0],填在了例化过来的led端。这是不对的,应该把顶层的端口和底层的用wire连起来。做的实验是小梅哥的一个实验:使4个LED灯以不同的频率去闪烁。在顶层模块只能连线。也就是不要有赋值的变量,不要在顶层赋值。顶层我实例化了4个相同的模块:一个LED亮的模块。
2024-08-13 18:58:17 170
原创 重定义看这篇 https://blog.csdn.net/feikudai8460/article/details/108401756
c++多重定义:multiple definition of 问题解决_多重定义怎么解决-CSDN博客
2023-11-09 19:59:05 56 1
原创 vscode编译说没有keys.o:“被.elf文件需要的keys.o文件没有找到”
.o文件是从.c文件来的。.c文件叫什么名字,.o文件就叫什么名字。我的左边目录的.c文件叫ledskeys.c,但是Makefile文件里的.c叫”keys.c“,所以是我Makefile.c文件名字写错了。改成”ledskeys.c”就好了。
2023-11-09 17:06:58 85 1
原创 “program build/STM32F103.elf verify reset exit“
2:“program build/STM32F103.elf verify reset exit"这是一个命令,跟着task文件来的。是task.json文件里的。写错了elf文件名字的原因。
2023-11-09 17:00:27 222 1
原创 约瑟夫问题的最简求法,Java
最后一种可自定义总人数与循环数的大小噢/**19. 据说著名犹太历史学家Josephus有过以下的故事: * 在罗马人占领乔塔帕特后,39 个犹太人与Josephus * 及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到, * 于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数, * 每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。 * 然而Josephus 和他的朋友并不想遵从。首先从一个人开始
2022-09-30 23:42:31 719 1
TA创建的收藏夹 TA关注的收藏夹
TA关注的人