- 博客(30)
- 收藏
- 关注
原创 Altium Designer软件绘制一个stm32最小系统的电路原理图
第二个是原理图库,第三个是PCB库,PCB库我们可以自己封装元器件,创建了过后取名字保存到文件夹中。3.和上面一样的方法新建PCB文件 文件->原理图,这样文件夹里面就会出现如下文件。在还没有放置之前,按Tab键会弹出一个小窗口,对网络编号名称进行修改。④放置网络编号(其他网络编号放置同下图操作)③将引脚线延长(将芯片和排针的引脚均延长)都添加了过后,目录变成这样。5.下载并添加器件库。点击安装,添加库文件。
2024-07-12 16:22:58
247
原创 System-Verilog 实现DE2-115 流水灯
SystemVerilog是一种硬件描述语言(HDL),它用于设计和验证电子系统,特别是在集成电路(IC)和系统级芯片(SoC)的设计过程中。SystemVerilog是Verilog语言的一个超集,它添加了许多新的特性和增强功能,使得设计者可以更高效地进行工作。集成电路设计:SystemVerilog用于设计从简单的门电路到复杂的SoC(System on Chip)。仿真和原型设计:用于快速原型设计和仿真,以验证设计的功能和性能。形式验证:与形式验证工具结合使用,以数学方式证明设计的属性。
2024-06-16 17:20:39
601
原创 基于STM32F103超声波测距 、和HC-SR04的12路RS485与Modbus设计方案
一. 采用stm32F103和HC-SR04超声波模块, 使用标准库或HAL库+ 定时器中断,完成1或2路的超声波障碍物测距功能。1)测试数据包含噪声,程序需要进行滤波处理;将测距数值通过串口上传到上位机串口助手;2)根据障碍物距离远近,控制一个蜂鸣器(可以用LED灯代替)发出频率不同的声音(或LED不同闪烁),即输出占空比变化的PWM波形;3)在没有超声波模块硬件的场景下,先使用Keil中的仿真逻辑分析仪,观察分析对应管脚上的时序波形,判读是否符合协议规范。
2024-06-01 18:03:24
199
原创 HLS入门
①点击project->project settings->synthesis->browser->选择顶层函数。②点击project->Run C Simulation(输出01交替,表示C仿真结果正确)点击Source,右键后,选择New File,创建文件。右键Test Bench,选择New File。点右边那一列三个点选器件。
2024-05-25 17:03:45
476
原创 基于FPGA的VGA协议实现显示 条纹-文字-图片
由于 VGA 接口传输的是模拟信号,其信号容易受到干扰,因此 VGA 在高分辨率下字体容易虚,信号线长的话,图像有拖尾现象。RGB分为RGB888,RGB565和RGB332三种不同长度的颜色信号,RGB888表示红绿蓝三个信号各占8个比特,RGB565则红绿蓝分别占5,6,5个比特。根据VGA协议的定义,VGA的行同步信号HSYNC,在每一行开始时产生一个高电平脉冲,场同步信号在每一帧开始时产生一个高电平脉冲。协议包含的信号:HS行同步信号,VS场同步信号,RGB三种颜色信号一共5种信号。
2024-05-21 15:51:53
721
原创 基于NIOS-II软核流水灯和串口通信实现
在左侧 ”Component Library” 标签栏中的查找窗口输入 On Chip 找到 ”On-Chip Memory(RAM or ROM)” 后点击 Add,修改size如图中的大小。- 将 cpu 的 clk 和 reste_n 分别与系统时钟 clk_0 的 clk 和 clk_reset 相连。- 将 nios2_qsys_0 重命名为 cpu,点击 ”Rename” 即可重新命名。- 在 ”Name” 列中将 jtag_uart_0 重命名为 jtag_uart。
2024-05-14 18:00:08
1112
原创 在ROS中完成一个机器小车的模型创建,传感器配置,仿真环境的设置,并控制机器小车进行运动。(2)
在src目录下输入以下命令:urdf文件夹中添加一个box_urdf.urdf文件,输入代码如下1.2 在 launch 文件中集成 URDF 与 Rviz在launch目录下,新建一个 box_launch.launch 文件1.3 在 Rviz 中显示模型在这个文件夹下打开终端输入命令,启动launch文件rviz 启动后,会发现并没有盒装的机器人模型,这是因为默认情况下没有添加机器人显示组件,需要手动添加,添加方式如下如果没有颜色,或者报错no TF data可以重新打开一个终端窗口
2024-05-07 11:18:30
472
原创 在ROS中完成一个机器小车的模型创建,传感器配置,仿真环境的设置,并控制机器小车进行运动。(1)
创建功能包,添加依赖。用的是Ubantu 20.04新建两个文档,jubot_base.urdf(放urdf文件夹下)display_jubot_base_urdf.launch(放launch文件夹下)config里的rviz文件是保存生成的,不用写Unified Robot Description Format,统一机器人描述格式,简称为URDF上图展示了模型的环节(link)与关节(joint)坐标关系,在基础模型之上,我们为机器人添加尺寸大小。由于每个环节的参考系都位于该环节的底部,关节也
2024-04-27 23:09:17
817
原创 Ubuntu16.04安装ROS Kinetic——实现小海龟仿真 详细过程记录
机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作方便、功能强大,特别适用于机器人这种多节点多任务的复杂场景。说明:ROS是一个适用于机器人编程的框架, 这个框架把原本松散的零部件耦合在了一起, 为他们提供了通信架构。
2024-02-28 15:32:38
2749
4
原创 学习WIFI模块 ESP8266-01S 遇到的问题总结
但是我没有焊线的材料,而且我发现3.3v和GND端口都连在USB-TTL上会很快就变得很烫,于是我就把有stm32c8t6插在上面的面包板用两根跳线通上电(如果不会可以往下翻有图,3.3连正极那一列,G连负极那一列),用公对母杜邦线让他们共3.3v并且共地(GND)了。ESP8266-01S需要连GND和3.3V的都用杜邦线插在通电的面包板上,在面包板左边那一列分别接在负极和正极上。上图这个接线是b站博主将两根杜邦线焊接在一起的解决办法,这样就可以共用一个3.3v了,GND同理。
2023-12-29 00:47:28
3300
13
原创 STM32F103C8T6基于HAL库移植uC/OS-III 过程记录
MDK-ARM\uCOS-III\Ports\ARM-Cortex-M3\Generic\RealView路径下选中以下文件,点击Add添加。MDK-ARM\uC-LIB\Ports\ARM-Cortex-M3\RealView路径下选中下图绿框文件,点击Add添加。在MDK-ARM\uC-CPU\ARM-Cortex-M3\RealView路径下选中以下文件,点击Add添加。MDK-ARM\uCOS-III\Source路径下选中全部 .c .h 文件,点击Add添加。
2023-12-25 17:12:55
839
原创 汉字点阵与OLED屏显
汉字的区位码编码规则是指将汉字分成若干个区域(block),每个区域有一个固定的大小(block size),然后在每个区域内按按照一定的顺序排列汉字(block order),最后将所有区域和汉字按按照一定的格式组合成一个完整的汉字(block format)。汉字的字形数据存存储格式是指将每个汉字转换成一个或多个点阵(glyph),然后在每个点阵上绘制出相应的线条和填充色,最后将所有点阵按按照一定的顺序排列成一个完整的图形(glyph)。都为’ 0 ‘(定义为模式0),则在时钟的前上升沿采样数据。
2023-12-21 23:20:20
1113
1
原创 HDLBits Verilog基础编程练习(1)
wire 的中文可以翻译为导线,但 Verilog 中的 wire 和现实中的导线不同,wire 应该理解为一个信号,信号是有方向性的。输入端口是由模块外部的信号驱动的,而输出端口则又会驱动另一个外部信号。你也可以在其他的编辑器上完成代码的编写,然后使用上传功能,上传你的 v 文件,这样会有些繁琐,但你可以利用到编辑器的语法补全,代码片段等特性。然后封装这个1位全加器为自定义的一个子电路模块(比如名称为OneAdder),然后新建一个项目,用1位全加器串行级联方式完成一个4位全加器的设计,并进行功能测试。
2023-12-19 22:28:28
1045
原创 STM32基于I2C协议的温湿度传感器的数据采集
软件I2C的优点是可以在没有硬件I2C接口的设备上实现I2C通信。然而,由于软件I2C是通过软件模拟的,其速度可能相对较慢,并且对CPU的处理能力要求较高。需要注意的是,软件I2C和硬件I2C在使用上有一些差异,特别是在初始化、配置和操作方面。具体的方法和接口可能因不同的平台和微控制器而有所不同,因此在实际应用中需要根据具体的硬件和软件环境选择合适的I2C实现方式。"软件I2C"和"硬件I2C"都是指用于实现I2C(Inter-Integrated Circuit,双线串行总线)通信协议的不同方法。
2023-12-10 19:18:50
193
2
原创 定时器&PWM应用编程 PWM模式呼吸灯
定义:PWM是一种数字信号,通常用于控制电路。它在预定义的时间内以高电平(5V或3.3V)和低电平(0V)之间切换。我们通常将高电平称为1,低电平称为0。主要参数占空比:PWM信号高电平时间占整个周期的百分比。如果信号始终为高电平,则占空比为100%;如果始终为低电平,则占空比为0%。频率:PWM信号的频率决定了一个周期内的速度。就是一秒钟PWM有多少个周期。STM32的MDK编译器可以选择5MHZ,10MHZ,20MHZ和50MHZ。周期T=1/频率f。
2023-11-24 11:16:52
178
3
原创 STM32简单串口通信/基于中断/DMA的串口通信
其中,RS-232是一种常用的串口通信标准,定义了用于串行通信的电气特性和信号传输规范。总结而言,选择USART1进行传输,并将串口设置为异步工作模式,并开启USART1的全局中断可以提供更灵活和高效的串口通信方式,同时提高系统的并发性和实时性能,简化编程过程,使代码更加优化和可维护。这样可以实现异步通信的同时,及时响应数据的到达或发送完成事件,提高系统的实时性能和效率。USB/TTL转RS-232模块是一种用于将USB接口转换为RS-232电平的设备,常用于连接计算机和串口设备之间的通信。
2023-10-28 20:58:17
271
2
原创 STM32在CubeMX使用HAL库实现按键控制流水灯亮灭
当你将GPIO模式设置为"上升和下降都可触发"时,GPIO引脚会监测其输入电平的变化,并在引脚电平从低电平(0)变为高电平(1)或从高电平(1)变为低电平(0)时触发相应的中断或事件。在GPIO引脚上选择Pull-up或Pull-down电阻的目的是为了确保在引脚未连接到外部设备或信号时,引脚的电平保持在已定义的状态(高电平或低电平),从而避免电平浮动或不确定性。由上面提供的资料,如果HSE被配置为主时钟(SYSCLK)的输入源,那么APB2总线的时钟也将来自HSE通过PLL的输出。
2023-10-27 20:04:08
3334
2
原创 STM32F103点亮流水灯 寄存器方式和标准外设库方式
又因为其为推挽模式输出,其最大速度为2MHz,所以4位寄存器的配置就是CNF5【00】MODE5【10】,【0010】换算为十进制为【2】,因此GPIOB_CRH|=0x00200000。又因为其为推挽模式输出,其最大速度为2MHz,所以4位寄存器的配置就是CNF9【00】MODE9【10】,【0010】换算为十进制为【2】,因此GPIOB_CRH|=0x00000020。STM32点亮LED的操作过程是:CPU给指令->GPIO收到指令->配置内部寄存器->配置IO口模式->控制LED亮灭。
2023-10-17 20:42:49
337
原创 Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址,进行对比分析
具体的映射关系和地址范围可以在芯片的参考手册中找到,手册会指定Flash、SRAM、寄存器和其他外设的起始地址和范围,以及访问这些地址时的读写权限和功能描述。定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数的内部就是无效的,再使用就会报错。在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件。
2023-10-16 11:19:11
110
1
原创 用 gcc 生成 .a 静态库和 .so动态库
将x2x、x2y目标文件用 ar工具生成1个 .a 静态库文件, 然后用 gcc将 main函数的目标文件与此静态库文件进行链接,生成最终的可执行程序,记录文件的大小。(或 #gcc main.c libmyhello.so -o hello 不会出错(没有 libmyhello.so 的话,会出错),但是接下来./hello 会提示出错,因为虽然连接时用的是当前目录的动态库,但是运行时,是到/usr/lib 中找库文件的,将文件 libmyhello.so 复制到目录/usr/lib 中就 OK 了)
2023-10-07 19:28:08
561
1
原创 51单片机与STM32 嵌入式C语言程序的思考
register关键字用于建议编译器将变量存储在寄存器中,以提高访问速度;volatile关键字用于指示编译器该变量的值可能在程序执行期间发生变化,以确保每次访问都从内存中读取最新的值。在嵌入式C程序中,这两个关键字常用于优化和确保对变量的正确访问。
2023-09-24 21:42:24
255
1
原创 STM32 GPIO输出实现led闪烁
GPIO_Init函数,用结构体的参数来初始化GPIO口,用法是先定义一个结构体,给它们赋值,然后再调用这个函数,这个函数就会自动把外设的各个参数配置好。这里我用的不是STLINK 用的是DAPmini 所以在keil5里面的debug里要选择CMSIS-DAP Debugger。选择的是GPIO输出中的推挽输出,推挽输出就是可以输出高低电频,直接驱动小功耗器件。这里采用的是低电频点亮的方式。
2023-09-24 21:06:30
637
4
原创 使用Protues 8.6和keil 5 mdk 仿真51单片机流水灯
因为我之前有安装过keil5 进行一些51单片机的实验,下载好keil5 mdk 过后,我先把原先keil5 安装目录下的C51文件夹复制到mdk的安装目录,又用stc-isp 添加型号和头文件到keil 中,可以看到创建工程时下拉列表中就可以选择AT89C51的型号了。这个时候创建51的工程时会提示没有对应的路径无法编译,所以我就把原先keil5 安装目录下的TOOLS.INI里面 [C51]以及后面的所有信息都复制粘贴到了keil5 mdk 安装目录中的TOOLS.INI里面作为补充信息。
2023-09-24 15:57:27
674
1
原创 在Ubuntu系统编译C语言程序,gcc与makefile的应用
直接使用gcc 的命令有限制,不过系统会提示安装gcc的命令,安装好后先复习一下gcc命令:常用gcc编译命令选项假设源程序文件名为test.c。无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。选项 -o用法:#gcc test.c -o test作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。选项 -E。
2023-09-10 20:40:39
257
4
原创 《Web应用基础》课程结业报告
一开始对于整个网络的布局,我并没有什么头绪,所以我在b站上搜索了一些别人做的静态网页。参考了几个过后,我发现基本上都是需要一个好看的导航栏,还要有高清的图片作为展示,
2023-07-03 02:00:59
98
1
原创 Javascript&TypeScript 学习总结
JavaScript 是 Web 的编程语言。所有现代的 HTML 页面都可以使用 JavaScript。
2023-06-29 17:16:21
108
1
原创 学习CSS的总结
CSS是级联样式表(Cascading Style Sheets)的缩写。HTML 用于撰写页面的内容,而 CSS 将决定这些内容该如何在屏幕上呈现。网页的内容是由 HTML的元素构建的,这些元素如何呈现,涉及许多方面,如整个页面的布局,元素的位置、距离、颜色、大小、是否显示、是否浮动、透明度等等。
2023-06-28 23:27:20
193
1
原创 掌握的HTML知识学习总结
HTML是超文本标记语言(HyperText Markup Language)的缩写。是一种用于定义内容结构的标记语言。在浏览器中看到的任何网页背后都是一个 HTML 文档,只要在网页上点击鼠标右键->查看源代码就可看到。
2023-06-27 22:55:30
84
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人