自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 问答 (1)
  • 收藏
  • 关注

原创 Linux编程(三)—makefile快速编译

linux环境下,编译c++程序很麻烦,后面g++ -o demo demo.cpp ……往往跟了许多许多东西,这些每次编译的时候都要书写,所以就产生了makefile快速编译方式,具体操作如下。

2024-07-14 18:13:54 266

原创 Linux下的C++编程(2)——动态库

在实际工作工作,常常需要给予其他人自己的库文件,但是,我们只想让其他人使用我们的库文件,而不想让其他人知道我们具体代码,所以就引入了动态库的概念,使用动态库可以让使用者正常使用我们的库,但是却不知道我们库里面的具体代码细节。-L/root/test/tools -lpublic:表示动态库文件,其中-L表示指定目录,-l表示动态库文件的名字,这里不需要加lib了,直接源文件名即可,后缀也不需要了。其实也就是public.cpp的地址,记住,除了主函数文件放在app里面外,其余的库文件都放在tools里面。

2024-07-13 21:11:28 294

原创 用VScode 登陆服务器&用VScode 间接在服务器上写代码

VScode就是个神软件不仅可以用VS远程登陆服务器,而且可以直接用VS读取服务器的文件,增加或者删除文件,写代码。一句话,神。1)首先是学习如何用VScode登陆服务器。本人用的是阿里云的三个月免费服务器。2)阿里云方面,啥子都不需要改,只需要记住公网IP就OK。3)然后VScode方面,要先下载一个remote SSH用来实现远程登陆。然后设置路径,点击扩展路径在此处输入你的config地址,一定要精确到config文件,不要只定位到.ssh。4)然后如图:点击左下角连接到主机。

2024-07-12 17:04:50 305

原创 阿里云登陆Centos7

用自己电脑登陆Centos7太麻烦了,还要自己弄个虚拟机,一个电脑里面既有WIN又有LINUX,索性直接买个阿里云服务器,来学习Centos7。

2024-07-09 12:15:22 225

原创 linux开机提示“welcome to emergency mode! ”的解决方法

情况:linux开机后一直显示welcome to emergency mode!因为我想要下载VM tool,但没有成功,直接报这个错误,因为在。写入了光盘自动挂载,但开机有。输入你的root密码就行了。

2024-07-09 10:14:17 107

原创 linux基础—目录与文件的权限

在windows中,权限限制几乎没有。在linux中,有严格的权限限制,普通用户不能修改root用的创建的文件,也不能创建文件。1,切换文件的拥有者切换用户只能由root用户操作。以root身份创建一个文件,然后这个文件的拥有者改成普通用户。切换用户:chown -R用户:组 目录和文件列表-R选项表示连同各子目录一起修改。把test文件的用户改为mysql,分组为dba。但是test里面的文件还是root用户的如果要想将test的所有内容都修改,则按照以下输入。

2024-07-08 17:39:01 272

原创 Linux 命令历史、补全和正则表达式

1.命令历史就和windows的ctrl+z一个概念,就是返回上一次的命令。类似于word的快速搜索,Linux也是用*和?ctrl+c可以终止本次输入,进行下一次输入。2.tab键可以自动补全(有点鸡肋)

2024-07-08 16:02:41 124

原创 linux基础—目录和文件操作

文件名。

2024-07-08 15:44:45 206

原创 Linux基础-创建组

linux的组和windos的用户登陆是一个东西。windos可以创建多个用户,在开机时会选择用户,linux也可以。

2024-07-08 13:40:44 395

原创 关于新装Centos7无法使用yum下载的解决办法

之前也写了一篇类似的文章,但感觉有漏洞,这次想直接把漏洞补齐。

2024-07-07 20:40:20 794 3

原创 Linux系统安装软件包的方法rpm和yum详解

本篇文章是记录学习Centos7的历程。

2024-07-07 17:04:40 261

原创 Centos新手问题——yum无法下载软件

起因:最近在学习centos7,在VM上成功安装后,用Secure进行远程登陆。然后设置客户端就是我们的(Window)的地址,可以把Linux理解为服务器端,Windows理解为客户端,客户端向服务器端传输数据。若显示如下,则正确(Centos-7.repo是我已经下载好了的,这里仅展示,就是第一个)本问题的关键是——镜像的文件过时了,需要一个新的镜像rope。这是在设置服务器地址,就是告诉虚拟机我把上传的文件放在哪里。本以为会自动下载,没成想报错了,说是镜像怎么怎么,如下图。也可以直接下载(建议)

2024-07-07 12:47:01 566 1

原创 让51和32共存于keil5

keil5使用技巧

2024-02-03 22:36:45 187

原创 STM32HAL库编程——USART发送和接受

为了实现发送完数据后还能继续发送,一般都是在主函数里面写一个接收函数,用来实现第一个数据的接收,虚函数里面再放入数据读取函数。首先开启接收模式,开启后,就代表USARTx进入了接收模式,如果没有数据传来,那就不管,如果有数据传来,那就进入中断,执行USART中断函数。如上图,第一个参数是串口号,第二个是发送数据的地址,如果是定义的字符串,那就直接写字符串名字,如果是数字变量,比如定义一个变量i,让i每秒加1,那就取地址符&i。下面是串口中断函数,只要USART一接收到数据,就马上执行这个函数。

2024-01-31 21:14:43 313

原创 STM32HAL库编程——TIM定时器计数

定时器每隔1s,就在OLED显示屏上加1.

2024-01-29 21:36:58 984

原创 STM32HAL库编程——OLED显示

因为最近也是在学STM32HAL库编程,为了便于调试程序,所以想要弄一个OLED显示屏来实现调试内容显示,但是固件库的OLED显示代码和HAL库OLED显示代码不一样,所以不能完全移植,需要做一些修改,但只需要修改一小部分即可。但是OLED显示屏的显示原理我现在都还没明白,因为这是属于IIC的内容,但我STM32固件库只学到USART就暂停了。所以我也是找了很久的网上资料,资料也是蛮多的,最后也是直接用大佬们的现成代码。

2024-01-28 09:59:04 204

原创 STM32HAL库编程——按键控制LED灯实验

按下的前10ms和松开后的10ms内会产生机械抖动,为了消除抖动,那就让编译器避开抖动阶段。就是跳过前10ms和跳过后10ms,这样就可以避免按键状态的读取错误。因为采用的是上拉输入,就是说,如果按键没有按下的话,那就一直是高电平,如果按键按下,那就是低电平。同时添加延时读取函数,如果一直处在按下状态的话,就一直进入While循环。初始化LED灯引脚PA0,高电平,推挽输出,无上拉下拉。初始化按键引脚PA1,上拉输入。1.首先定义LED电平状态切换函数。2.再定义读取按键引脚电平状态函数。

2024-01-27 15:12:19 757

原创 STM32HAL库编程——点亮一颗LED

今天也是换一个标题吧,把“自学STM32历程”改成“STM32HAL库编程”,因为我现阶段是以HAL库学习为主。今天也是发布第一个HAL库项目——点亮一颗LED,这也是所有嵌入式学习的开始吧!因为HAL库编程和固件库编程的区别不大,只是HAL库编程能帮助我们初始化,而固件库要我们自己初始化而已,但它们的编译原理是一样的,都是间接控制寄存器,而且都可以控制同一个芯片,只是编译方式不同而已。

2024-01-27 09:02:26 586

原创 自学STM32历程——进军HAL库编程!

最近也是跟着B站江科大老师学完了STM32库函数编程,当然,还没有学完,因为我目前学习32的主要目的是为了备考蓝桥杯,所以我只学到USART串口发送就没继续学了。至于为什么还要学Hal库编程,哈哈哈,就是因为蓝桥杯的嵌入式考试是用Hal库编程的。链接:https://pan.baidu.com/s/1ou0-ycucZXx9tky3jAA3vQ?但但是,我学Hal库也只是为了对付蓝桥杯,蓝桥杯考完后,我就又要开始学习库函数了,因为库函数更偏向于工作。所以这篇文章将是我HAL库学习的第一篇总结!

2024-01-25 09:41:22 414

原创 自学STM32历程——认识GPIO的八种模式

果然,学习过程中做笔记是十分重要的,虽然我在学习STM32过程中没有用过纸质笔记,但是我是有认真的在CSDN上发布自己的电子笔记。不得不说,软件人就是要做软件笔记啊!最近也是在复习之前写的文章,但是我发现我是从中断开始写的,对GPIO部分并没有涉及,所以想要做一个弥补。

2024-01-25 09:11:29 332

原创 STM32自学历程——记录跳过的知识部分

因为我现在学习STM32主要是为了备考4月份的蓝桥杯。所以我计划先把蓝桥杯搞定,再把未学习的部分补齐。第二:ADC的DMA读取数据组这里。为什么不一口气把资料全部学习完?第三:USART串口数据包这里。我还差哪些部分没有学习?第一:TIM输入捕获这里。

2024-01-21 22:28:07 94

原创 STM32自学历程——USART传输(串口接收)

对比之前的串口发送,串口接收只用在发送的基础之上添几行代码就可以了。串口接收相当于是接收发送方传回的波形,进行读取后转换成十六进制,然后对比ASCII码确定值。

2024-01-21 12:15:25 395 1

原创 STM32自学历程——USART传输(解决传汉字乱码问题)

GBK2312:如果直接使用GBK2312的话就简单了,什么都不用加,而且串口也能够正常打印。打开魔术棒——C/C++——在下图所示地方输入:--no-multibyte-chars。有些时候利用串口发送汉字时,电脑端会出现乱码,这是因为汉字库没选好。

2024-01-21 12:07:25 1153 1

原创 STM32自学历程——USART传输(重定向printf)

重定向函数也是Printf函数的底层函数,Printf函数实现打印的原理就是通过fput函数一位一位的打印,只不过未重定向之前,fput函数是将值打印到屏幕上,重定向就是让fput函数一位一位的把数据打印到串口而已。如果直接想用Printf函数打印东西到电脑串口上,那就要对Printf进行重定向,因为Printf函数是默认打印东西到屏幕上,但是单片机没有屏幕,所以就要对Printf进行重定向。致,就是多了一位数组位。Printf函数是将数据打印到屏幕上,而Sprintf函数是将函数打印到定义的数组里面。

2024-01-21 12:05:22 1155 1

原创 STM32自学历程——USART传输(串口发送实验)

成功在电脑串口助手上显示中文“你好,世界”

2024-01-21 11:48:20 1220 1

原创 STM32自学历程——USART传输(基础知识)

其实这不仅是USART协议的原理,更是通信原理的本质,通信双方为了实现聊天,但计算机又只能实现01传递,所以通信双方肯定有所约定,肯定都有一张表,表上写0000为0,那么想要传输0,那直接传输0000对方就知道我要传输0了。USART传输一个字节是通过帧的方式来传输的,因为一个字节有8位,所以数据位就有8位,再加上起始位和停止位共有10位。通信双方约定的发送方式,比如在考试过程中,想给别人传答案,咳嗽一声表示准备开始,竖一根手指头表示选A,竖两根手指头表示选B,竖三根手指头表示选C,最后挥挥手表示结束。

2024-01-21 09:35:49 870 1

原创 STM32自学历程——非DMA的多路数据转化

上一篇文章讲了AD如何单通道转换,就是简单的配置一下就可以了。这篇就来讲讲如何不利用DMA来实现多路数据采集。

2024-01-18 23:18:41 297

原创 STM32自学历程——AD单通道转化

ADC非常重要,学会ADC单通道转换后就可以进行一些简答的小项目了,比如:温湿度检测、煤气浓度检测等等。

2024-01-18 20:34:45 411

原创 STM32自学历程——直流电机的控制

就是让直流电机的两个引脚不同电平,这样就可以控制电机的旋转当红色引脚为高电平,黑色为低电平时,电机正转当红色引脚为低电平,黑色为高电平时,电机反转。

2024-01-17 21:06:16 266

原创 STM32自学历程——舵机操控

舵机一共只有3个接口,电源和GND就占了两个,用于传输的就只有一个口,所以舵机的操作还是挺简单的。通过给舵机发送方波信号来实现舵机的转动,而通过设置方波信号的占空比来实现舵机的旋转角度,占空比与舵机旋转角度的关系如下。PWM周期就是从0计数到自动重装寄存器ARR的过程,占空比的关键就是高电平的持续时间,但这里是通过计数来类比的所以高电平时间就类比为CCR的值。这里还是用定时器,利用OC(输出比较),设置好CCR,然后设置对应定时器的对应比较通道,这个看引脚图,因为这是已经定死了的。

2024-01-17 18:33:13 211

原创 STM32自学历程——PWM呼吸灯的实现(下)

成功实现LED灯的呼吸效果,先由暗到亮,再由亮到暗,以此循环往复。

2024-01-16 17:18:50 1081 1

原创 STM32自学历程——PWM呼吸灯的实现(上)

Pwm是什么:Pulse Width Modulation脉冲宽度调制使用思想:利用人眼的余晖效应,来控制呼吸灯或电机。在数字输入系统中等效模拟量。占空比:在一个电平周期内,高电平与整个电平周期的比值。比值越大,则代表高电平持续时间越长。CNT是计数器计数值,而CCR是我们自己定的值,REF是输出信号的参考值。

2024-01-16 16:29:06 413 1

原创 FPGA项目集合汇总

练习1是实现1-0转换状态机器,练习2是实现输入输出计数器的实现,练习3是与门的实现。练习4是当时钟每经历10次高电平,则翻转电平。

2024-01-10 23:01:49 330 1

原创 小插曲4——Verilog HDL语言基础学习

因为编译器默认1,2,3为十进制数,而大部分用到的都是二进制和十六进制,所以必须将数值加以区分:格式为‘。之前的小插曲1、2、3都是讲的FPGA项目经验,这次回归基础,讲一讲FPGA的编程语言,我用的时Verilog HDL。如果我们身边没有FPGA的实物,但我们又想看一下实验效果,这时就可以利用Modesim进行软件仿真,仿真的代码称为——testbench代码。相当于定义了一个接口,用于连线。如果为真,则返回1,如果为假,则返回0。如果为真,则返回1,如果为假,则返回0。

2024-01-10 16:14:37 516

原创 小插曲3——Modesim仿真常见问题

因为本学期的FPGA期末考试要使用机考,且需要使用Modesim进行波形仿真,所以最近也是在练习使用Modesim。不过在使用Modesim时我也遇到了不少的问题,所以想要发布一个总结帖子,希望能帮助到大家,而且也为自己以后的复习准备好资源。

2024-01-09 14:30:45 719

原创 STM32自学历程——用外部时钟计数(红外传感器为触发)

先做一个区分,外部时钟和内部时钟是怎么计数的?内部时钟:通过内部晶振来实现计数,每到一个上升沿就计数一次;外部时钟:通过外部触发的方式来触发定时中断,比如利用红外传感器,只要用手挡一次,就变化电平,计数器就加1。

2024-01-06 23:04:40 670 1

原创 STM32自学历程——TIM定时器中断计数实验

在STM32中,开启外设的时钟和配置外设的时钟源是两个独立但相关的步骤。然后,我们需要通过TIM_InternalClockConfig来配置TIM2的时钟源,这个时钟用来给预分频器信号,这两个时钟是不同的作用。总之,只要是想配置一个外设,就需要配置对应的外部时钟,因为只有配置了该时钟,微控制器才知道你要使用这个外设,而TIM、PWM属于高级应用,需要开启额外的时钟。把代码烧录进入开发板后,OLED显示屏显示的计数不是从0开始的,而是从1开始的,这是怎么回事呢?该函数用于读取该TIMx所设置的预分频数。

2024-01-06 22:39:05 471 1

原创 STM32自学历程——TIM定时器中断

将72Mhz的主频进行分频,因为72Mhz意味着1秒通过72000000个波形,即有72000000个上升沿通过,而计数器的最大计数值为65535,每一个上升沿记一次数,最大计数65535,若寄存器没有设置值,则默认计数到65535计数清零。所以为了让计数值变慢,就要对主频进行分频,预分频器的分频原则如下:0不分频1分成两个频为:36MHZ2分成三个频为:12MHZ。

2024-01-06 22:02:11 515 1

原创 插曲2——如何在Quartus II里面进行模块例化(以基于EP2C5T144C8的人体红外检测装置项目为例)

我只能说,还好我学过32,这和32里面的子函数调用很像很像,不过还是有区别的。模块例化就是就是将实现各个功能的函数逐个放在单独的文件里面,需要的时候就调用,不需要时就不调用。就相当于是32的库函数。在32里面无论是调用什么函数,都是要在主函数里面调用的,而FPGA要调用各个封装函数,就需要利用顶层文件来将各个封装函数联系起来。我觉得顶层文件就像是一个总的接线器,是开发板和功能代码的一个联系中介,比如,一个实现ad采集的封装函数需要用到开发板的ad引脚,在封装函数中,将ad引脚直接。

2024-01-01 23:31:59 2512

原创 小插曲——浅谈FPGA的学习心得

因为我现在的情况是:大三上学期临近期末,而且我这个学期有FPGA的课程,虽然学校教的东西很浅薄,感觉就像是告诉我有FPGA这个东西就没了(哈哈哈,其实是因为我没听懂)。我们学校期末安排的实训内容也是基于FPGA的,我也是捣鼓了好几天才弄出来,本着”没有复盘的学习=白学“思想,我还是要为本学期FPGA的学习写一篇心得。

2024-01-01 21:53:52 429

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除