- 博客(28)
- 收藏
- 关注
原创 web基础——CSS
CSS在前面我们用基本的html创建了一个网页,但仅仅是将内容在网页上显示出来,但是这些元素如何显示,涉及许多问题,如元素的位置、距离、颜色、大小等等,于是就有了CSS的出现。CSS语法CSS规则由两个主要的部分构成:选择器、以及一条或多条的声明:选择器通常是需要改变的HTML元素,每条声明由一个属性和一个值组成。CSS对某个元素的定义是在< head>中进行,在头部中定义完成之后,在< body>中直接按照html的规则使用就可以了。话不多说看实例:<st
2021-04-05 09:30:35
295
原创 Web基础——HTML
文章目录何为HTMLHTML文档结构HTML元素文本与标题超链接锚点图片表格列表何为HTMLHTML是超文本标记语言,用来构建Web页面即所谓的网页。HTML定义了网页的内容的含义与结构。HTML文档结构HTML使用“标记”来注明文本、图片和其他内容,以便于在浏览器中显示出来。HTML标记包含一些规定的“元素”如< head >,< title >,< body >,< header >,< footer >,< article &
2021-03-12 19:43:35
265
原创 用STM32F103的DAC功能完成波形输出
一、DAC是什么数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。STM32具有片上DAC外设,它的分辯率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。DAC可以通过引脚输入参考电压VRE
2021-01-03 12:46:39
3571
2
原创 用STM32F103输出一路PWM波形
文章目录一、PWM简介 PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调 制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成 为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信, 功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些 音频放大器,因此学习PWM具有十分重要的现实意义。 其实我们也可以这样理解,PWM是一种对模拟信号电平进行数字编码 的方法。通过高分辨率计
2020-12-29 12:56:15
914
原创 基于MDK创建纯汇编语言的STM32工程
文章目录汇编语言基于MDK创建纯汇编语言的STM32工程代码仿真器设置汇编语言汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植
2020-12-27 17:59:33
432
2
原创 根据OLED屏显和汉字点阵编码原理,用STM32在显示器显示内容
文章目录理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:显示自己的学号和姓名;显示AHT20的温度和湿度;上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者歌词、诗词。(最好使用硬件刷屏模式)一、显示自己的名字和学号首先可以在野火官网中下载字库工具,将汉字变成点阵的形式打开软件之后,设置如下然后找到官方的例程代码,可以看到有连线的说明。之后就可以根据代码的提示找到输出中文与输出数字的代码进
2020-12-27 16:37:49
1896
原创 STM32的三种Boot模式
文章目录Boot模式介绍Boot模式介绍所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存 = 芯片内置的Flash。2)SRAM = 芯片内置的RAM区,就是内存啦。3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域
2020-12-26 20:22:18
338
原创 AD添加元件
文章目录在AD中进行原理图绘制的时候,有的时候元件库中并没有自己需要的原件,这个时候就需要自己在AD中绘制一个元件了,博主自己的添加的过程大致如下首先在自己的【项目】中新建一个PCB工程在这个PCB工程中添加一个【Schematic Library(元件库编辑器)】在接下来的【SCH Library】中按图选择添加【新器件】给自己的元件命名在【SCH Library】中选中自己添加的元件,然后在工作空间中"右击"鼠标,选择【放置】,先放置一个底板,即选择一个矩形然后在矩形周围根据自己
2020-12-24 20:25:32
27727
6
原创 Cisco Packet Tracer
本部分实验共有 15 个,需使用 Cisco Packet Tracer 软件完成。请大家先了解 VLSM、CIDR、RIP、OSPF、VLAN、STP、NAT 及 DHCP 等概念,以能够进行网络规划和配置。???? 参考Cisco Packet Tracer 教学视频Cisco Packet Tracer 实验教程CPT 软件使用简介请使用上面的参考链接 1 ,了解和熟悉 CPT 软件的使用。直接连接两台 PC 构建 LAN将两台 PC 直接连接构成一个网络。注意:直接连接需使用交叉线。
2020-12-23 21:24:35
961
1
原创 Wireshark实验
Wireshark实验实验准备数据链路层实作实验准备请自行查找或使用如下参考资料,了解 Wireshark 的基本使用:- 选择对哪块网卡进行数据包捕获 - 开始/停止捕获 - 了解 Wireshark 主要窗口区域 - 设置数据包的过滤 - 跟踪数据流???? 参考 1. 官方文档https://www.wireshark.org/docs/wsug_html/2. Wireshark抓包新手使用教程https://www.cnblogs.com/linyfeng/p/949612
2020-12-22 21:29:06
1592
原创 I2C总线通信协议
I2C协议简介 I2C通讯协议(Inter—Integrated Circuit)是由Philps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分
2020-12-22 10:48:14
1828
原创 标准库函数与基于HAL库函数
文章目录一、标准库二、HAL库三、库函数与HAL库对比总结我们刚开始学习51的时候有的人会直接选择进行对单片机的寄存器进行操作,可以很好的理解单片机的工作原理,对于代码的编写也会后很好的理解,但是在stm32的时候操作寄存器就不太行了,因为stm32的寄存器是51的数十倍,如此多的寄存器根本无法全部记忆,开发时需要经常的翻查芯片的数据手册,此时直接操作寄存器就变得非常的费力了。这是我们就有了其他的操作方式,来简化我们的工作。一、标准库STM32有非常多的寄存器,而导致了开发困难,所以为此ST公司就为每
2020-12-13 14:54:02
2397
原创 嵌入式Ardunio IDE实践操作
Ardunio IDE安装安装步骤在CSDN中可以找到许多的博客,这些博主写的都非常清楚了就不用再赘述了,下面时借鉴的博主的博客:https://blog.csdn.net/quansirx/article/details/104906563我按照上面的博主的步骤安装的时候出现了下面的错误下载 https://downloads.arduino.cc/packages/package_index.json error 出错导致在安装的第三步出现了错误,ARM关键字搜索,选中Cortex-M3找不到,
2020-12-13 13:34:31
362
原创 STM32基于FreeRTOS的多任务程序
文章目录简介任务实现结果简介①实时操作系统(Real-time operating system, RTOS),又称即时操作系统,它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。实时操作系统与一般的操作系统相比,最大的特色就是“实时性”,如果有一个任务需要执行,实时操作系统会马上(在较短时间内)执行该任务,不会有较长的延时。这种特性保证了各个任务的及时执行。我们刚刚开始记住“实时”就可以了,其他的后面再学。了解完实时操作系统的定义,就来数一数目前主流的实时操作系统了。常见的实时操作
2020-12-02 22:31:22
452
原创 stm32的堆、栈、全局变量的分配地址编程显示
在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量区、代码区,其中全局区中高地址分布着.bss段,低地址分布着.data段。1、栈区(stack)临时创建的局部变量存放在栈区。函数调用时,其入口参数存放在栈区。函数返回时,其返回值存放在栈区。const定义的局部变量存放在栈区。2、堆区(heap)堆区用于存放程序运行中被动态分布的内存段,可增可减。可以有malloc等函数实现动态分布内存。有malloc函数分布的内存,必须用free进行内存释
2020-12-01 22:18:40
834
原创 STM32的USART窗口通信
目的:STM32的USART窗口通讯程序,要求:1)设置波特率为115200,1位停止位,无校验位。2)STM32系统给上位机(win10)连续发送“hello windows!”,上位机接收程序可以使用“串口调试助手“,也可自己编程。3)当上位机给stm32发送“Stop,stm32”后,stm32停止发送。实验环境:开发板:野火指南者STM32库版本:STM32F10x_StdPeriph_Lib_V3.5.0IDE:KEIL5代码编写工具:Source Insight 4.0串口
2020-12-01 21:21:02
440
原创 C语言程序里全局变量、局部变量、堆、栈等概念
寄存器与固件库的差异固件库就是函数的集合。当我们写代码的时候可以直接对寄存器进行操作,但是如果使用的寄存器较多我们就需要掌握每一个寄存器的操作方法,对于我们而言十分的不容易,因此便有了固件库的出现。它将每个寄存器的操作封装在一个函数中,在使用的时候我们直接调用这个函数就可以了,函数固件库函数的作用是向下负责与寄存器直接打交道。向上提供用户函数调用的接口(API)。我们就不用再细究这个寄存器具体是怎么操作的。STM32的USART窗口通信...
2020-12-01 13:40:36
784
原创 PCB生成BOM表、网络表添加logo并且输出为Gerber文件
文章目录接上一篇的博客https://editor.csdn.net/md/?articleId=109995271,当我们将自己的PCB板子绘制完成之后,还可以自己添加一些
2020-11-24 21:34:50
5385
原创 计算机网络中的简单命令——验证性实验
计算机实验验证性实验准备计算机常用命令1、ipconfig实作一实作二问题2、ping实作一实作二问题3、tracert实作一问题一问题二问题三4、ARP实作一实作二验证性实验准备打开Windows的命令提示符窗口win+R,输入cmd打开命令提示符窗口,在窗口中验证一些常用的计算机命令。计算机常用命令1、ipconfig显示当前网络连接的配置信息,可以看到自己电脑的IP地址、子网掩码以及网关地址实作一使用 ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意
2020-11-11 11:10:37
480
原创 Proteus8.9 stm32流水灯实验
Proteus8.9 stm32流水灯实验文章目录一、在Proteus8.9中创建工程二、添加元件三、添加代码一、在Proteus8.9中创建工程1、打开软件,点击创建新工程,输入工程名,选择保存路径。2、下一步之后,在框图中选择【从选中的模板中创建原理图】选择【DEFAULT】3、选择不创建PCB布版设计4、下一步之后,选择【创建固件项目】,系列选择Cortex-M3,Controller选择STM32F103R6,点击下一步,然后创建成功二、添加元件1、上面的工程创建成功后,在
2020-11-08 10:53:21
1988
原创 Ubuntu中VScode的安装与简单的代码调试
Ubuntu中VScode的安装与简单的代码调试文章目录一、安装二、用vscode编译调试三、 配置调试和编译文件,launch.json和task.json。四、总结一、安装在图形界面安装软件1、在Ubuntu的桌面中进入应用中心2、在软件商城里面搜索Visual Studio Code3、在软件中心里面直接进行安装就可以了4、安装之后界面可能会没有显示该软件,我们可以桌面选择第一个软件5、在搜索框里面输入V就会出现刚才的软件,直接拖动图标到Ubuntu左侧,就可以将该软件放在桌面了
2020-11-07 16:53:37
547
原创 GDB调试器及j简单的调试方法
GDB调试器及调试方法文章目录前言1、GDB的使用2、简单程序调试3、简单命令示3、core文件前言学习GDB之前我们要了解一下什么是GDB,学习GDB对我们程序的调试有什么作用。 GDB 是GNU工程为GNU操作系统开发的调试器,但它的使用不局限于GNU操作系统, GDB可以运行在UNIX、Linux甚至Microsoft Windows。GDB可以调试C、C++、Objective-C、Pascal、Ada等语言编写的程序;被调试的程序可以跟GDB运行于同一台电脑,也可运行与不同的电脑用GD
2020-10-29 09:51:14
518
原创 Ubuntu中opencv的安装以及简单应用
Ubuntu中opencv的安装以及简单应用一、Linux中opencv的安装二、Linux下编程目标:在Ubuntu中安装opencv3.4.x在Ubuntu系统中,编写一个打开图片并且对图片进行特效显示的代码在Ubuntu系统中编写一个打开摄像头显示处理视频的程序一、Linux中opencv的安装1)、可参考博客https://cungudafa.blog.csdn.net/article/details/84451066内容很详细。二、Linux下编程在opencv-3.4.
2020-10-29 09:44:37
457
原创 Linux中编译器的简单应用
用gcc生成静态库和动态库我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。首先说明在 Linux 中如何创建静态库和动态库,以及使用它们。在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o 文件。一、创建静态库1、编辑子程序在自己的目录下,创建以下程序程序 1: h
2020-10-16 13:13:15
193
原创 keil中c51 与sym32的工程创建
@[TOC]] keil中的c51与stm32一、keil4中的c51工程的创建以及简单代码实现。由于keil4我用的是汉化后的版本,因此创建过程相对英文版的更加的简单1、打开keil4,点击【工程】,选择【新建工程】,将工程创建在你可以找到的地方。输入工程名,点击确定。2、确定之后会出现下面的框图,选择自己的芯片【这里我用的是Atmel的AT89C51】,点击确定。3、确定之后会出现下面的提示,选择【是】。就可以新建一个工程了。4、点击【文件】,选择【新建文件】,输入代码之后,点击【保存
2020-10-08 12:06:07
456
原创 Ubuntu环境中C语言以及Makefile的简单练习
Ubuntu环境中C语言以及Makefile的简单练习1、C语言编写主程序文件main.c和子程序文件sub1.c。方法一:1、创建主程序文件 main1.c 和一个子程序文件 sub1.c1.1、main.c的代码为#include<stdio.h>float main(){float d;int a,b;scanf("%d%d",&a,&b);d=x2x(a,b);printf("%f\n",d);}1.2、sub1.c的代码为#includ.
2020-09-23 22:56:03
581
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人