- 博客(54)
- 收藏
- 关注
原创 顺序栈和链式栈的使用
栈的实现比较简单,但是栈的应用比较广泛,比如在函数调用的时候,函数的返回地址、参数、局部变量等都需要压入栈中,在函数返回的时候需要从栈中弹出。栈的应用还有很多,比如在编译器中,编译器会将中缀表达式转换为后缀表达式,然后再进行计算。对于链式栈的使用比较少,一般都是使用顺序栈,所以链式栈作为一个提高内容就可以了。
2025-03-09 21:57:15
593
原创 使用stm32控制esp01s
使用stm32f103控制esp01s是步入物联网的第一步,接下来的文章会详细讲解如何使用stm32控制esp01s。其实对于esp01s的控制还是比较简单的,因为它本质上就是串口的通讯,所以我们只需要使用串口来进行通讯就可以了,然后就可以了,后面的文章我会详细介绍一下。
2025-02-13 00:16:12
1475
2
原创 [基础入门]正向shell和反弹shell
其实这个过程是相对的,需要找到一个参考点,假如说现在目标机器是Windows,攻击机器是Linux,Linux去连接Windows这个过程就是正向的,相反,如果Windows主动连接Linux那就是反向的,也叫做反弹。RCE(remote command/code execute) 远程系统命令执行,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口。
2024-08-22 13:59:01
1678
原创 12 spi通讯协议
前面介绍了IIC协议的通讯,这一节介绍一下比较简单的SPI通讯协议,spi使用的地方也是很多的,而且也很简单,所以这一章就来介绍一下。SPI是由摩托罗拉公司开发的一种通用的数据总线。有四根信号线,分别是SCK时序控制线、SS片选线、MOSI主机发送从机接收信号线和MISO主机接收从机发送信号线。是一个同步、全双工的通讯协议,支持一主一从和一主多从。
2024-08-22 13:54:53
1049
原创 11 IIC通讯协议
IIC协议在前面03 OLED显示屏中初略的介绍了一下IIC协议,并且使用软件模拟IIC协议来和OLED显示屏进行通讯,但是之前的那一章主要是介绍如何写入数据到从设备中,没有介绍如何从从设备那接收发送过来的数据,并且还有硬件实现IIC也没有说,这一节就讲读取和硬件IIC来统一说明。IIC、SPI、USART等都属于通讯协议,是由飞利浦公司开发的一款同步半双工、一主一从、一主多从或多主多从的通讯协议,它有两条线组成,一根是SCL时钟线,另一根是SDA数据线。
2024-08-19 16:39:58
910
原创 09 DMA配合ADC多通道
前面介绍了ADC数模转换,得到了内部的温度值和外部电压值,我感觉这样太消耗CPU的资源了,所以我准备用DMA来帮我从AD的数据寄存器中拿出数据出来,就不用再去读取AD的数据寄存器了。DMA叫做直接存储器存取,就不需要我们CPU通过软件将外部寄存器或者内部的存储器的数据读取到一个地方,而是由DMA控制器来进行操作,这种方法只需要让CPU为DMA配置好一些基本的配置后,当DMA接收到对应的信号就会自动的执行,省去了CPU进行这种毫无意义的操作。
2024-08-09 10:10:07
867
原创 08 ADC模数转换
这一节终于到模数转换了,我在做那个项目的时候忘记如何配置模数转换器了,所以这一章是在我学完后并且在项目中实现后写的文章,这里我会结合项目来介绍如何用adc采集外部模拟量后转换为数字量和用stm32内部的温度传感器通过adc采集后显示出来。ADC又叫做模数转换,即模拟量转换为数字量,什么是模拟量什么是数字量呢?模拟量就是一种没有规律的量,比如说声音,声音就是一个模拟量。数字量是用数字表达的一个量,就像上上节输出比较那说的PWM波就是一个数字量。而ADC这个设备就是将这些模拟量转换为用数字表达的数字量。
2024-08-07 17:18:45
481
原创 07 输入捕获和编码器接口
当输入的引脚有指定电平跳变时,会将计数器CNT中的值保存在CCR中,这个就称为输入捕获。编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减。下图是一个正交编码器的图:可以看到,编码器的这个波形,A项和B项的波形是相差90度的,所以这两个波形在一起就可以分正和反了。通用定时器的相关操作就介绍完成了,后面有机会的话给大家介绍一下高级定时器,高级定时器可以操作三项无刷电机,等后面有时间我做一个无人机会使用到高级定时器。
2024-08-02 15:50:07
1020
原创 06 定时器和PWM(1)
定时器其实和计数器一样,我们通过设置一个值,当计数器运行一个计数寄存器向上加1或者向下减1达到这个值后,会发送一个事件,以此运行即可。这个就是定时器。TIM定时器中断和PWM的基础功能还是比较简单的,大家可以多使用一下就可以慢慢的熟悉了。
2024-07-31 17:17:12
464
原创 05 EXTI外部中断
又鸽了几天的文章,最近在做一个手表项目,这个项目用到了很多知识,特别是中断的知识特别的多,所以这一篇文章来讲讲外部中断,等下一章说一下内部中断。例如你现在在搞一个项目,然后突然看到你自己写的便条,上面写着今天该写文章了,然后你就会停下手中的项目,转去写文章,当文章写完后又继续的做项目,这个过程就是一个中断。也就是说中断就是一个打断当前执行的任务,转去执行另外一个任务,当这个任务执行完成后就会返回执行被打断的任务。上面就是中断执行的一个逻辑。
2024-07-28 22:44:29
305
原创 03 OLED显示屏实现
这一章主要是上一节没有讲完的项目的一个编写,上一章我们说道单片机的输入和输出,包括四种单片机与外设之间的数据交换使用到的方式,这一章就利用前面说到的这几种方式来编写一个OLED显示屏的驱动。学会了这个显示屏如何显示后后面我们可以对传感器进行操作了,到时候传感器接收到的数据就可以直接显示在OLED上,这样就能很好的观察其中的变化了。下一章准备介绍一下显示屏的一些操作,比如显示进度条,显示动图或者其他内容。
2024-04-25 23:15:10
1451
原创 02 IO口的操作
之前已经介绍了环境的搭建和调试的方法,这一篇文章我们就开始介绍一下如何对外设进行操作,这一节我会结合多种外设的操作来将所有方式的操作介绍给大家,并手把手介绍如何使用一个小显示屏OLED,这对我们后面的操作有很大的帮助。这里需要先介绍一下stm32的GPIO口和对应的引脚。
2024-04-23 22:42:53
1137
原创 01使用调试工具
之前写了一篇关于在linux下搭建stm32标准库的文章后,有一些小伙伴们还是出现了一些奇奇怪怪的错误,这一篇文章就是给大家介绍一下如何调试来找到错误。当然这个文章还是写得不是很完整,因为我只遇到了这种问题,如果你们有什么问题可以问问我,但我不一定能解决,大家可以加一下我们的讨论群:247294351,当然也不一定能解决。
2024-03-27 20:34:24
1373
原创 [香橙派开发系列]使用蓝牙和手机进行信息的交换
隔了这么久我准备再玩一下香橙派,最近这段时间还是比较的忙,我搭建了个论坛和博客,经常被网络攻击,所以我也是一直在弄网络去了,然后今天比较空闲就想着把单子做一下,这个单子需要使用到HC05蓝牙模块,所以我准备写一篇博客来使用香橙派控制HC05蓝牙模块。HC05是嵌入式蓝牙串口通讯模块,也就是使用串口就可以和HC05进行通讯并发送信息给蓝牙的接收端,这个模块有两种工作方式:1 命令响应工作模式2 自动连接工作模式。
2024-02-01 22:52:52
2138
2
原创 [香橙派开发系列]3b系统安装和使用vscode进行远程连接
之前研究中断的时候一直出现问题,我怀疑是因为zero 3不支持,所以一狠心就花钱买了一块3b。然后那几天在看Linux系统的时候看到很多人都推荐使用debian系统,所以我准备在这块板子上安装一下debian系统来试试,以前我是玩Ubuntu的,所以有些地方我还是不太懂。然后今天下载debian的时候出现了有些问题,我写这篇文章来记录一下这些问题。vscode非常好用,非常好用,有了vscode可以提高我们的开发效率。
2023-12-23 18:46:23
2301
原创 [香橙派开发系列]输入模式和上拉下拉
前面说了一下输出模式,这一章说一下输入模式,学完输入模式后我们就可以用一个软件模拟IIC让OLED0.96寸的显示屏显示内容了。输入还是非常的简单,大家多多练习即可,后面也会经常使用到这个输入函数的。大家有什么问题可以私信或者在文章下面留言,我都会看的。
2023-12-04 16:03:16
622
4
原创 [香橙派开发系列]输入模式和上拉下拉
前面说了一下输出模式,这一章说一下输入模式,学完输入模式后我们就可以用一个软件模拟IIC让OLED0.96寸的显示屏显示内容了。输入还是非常的简单,大家多多练习即可,后面也会经常使用到这个输入函数的。大家有什么问题可以私信或者在文章下面留言,我都会看的。
2023-12-04 16:01:24
559
原创 [香橙派开发系列]使用wiringPi控制26个引脚
不管是对什么开发板来说,开发需要使用到一些包,像stm32就需要用到一些包,香橙派也是一样的,也是需要使用到一些软件包才能进行开发。学会了如何操作gpio后就可以控制一些传感器或者元器件了,所以先得把gpio的操作学好就可以控制一些复杂的东西了,后面香橙派还有很多功能我还没有研究完成,等需要用到什么就使用什么即可。下一章我会介绍一下输入模式,毕竟在读传感器的时候不能只输出,还得输入呢。
2023-12-03 15:39:16
3728
1
原创 [香橙派开发系列]无屏幕使用香橙派
在学单片机之前我就接触到树莓派这个掌间电脑,之前买了一块但是一直放在家里面吃灰,然后这几天突然感觉树莓派很好玩,准备买一块来玩一下,但是树莓派的价格实在是太高了,我还只是个学生没那么多钱,然后呢我在网上找到了一个平替的板子就是这个系列的主题–香橙派,我买了个比较便宜的。
2023-12-02 20:22:09
1421
原创 51单片机操作蜂鸣器
前面介绍了LED和按键,相信大家对于GPIO的操作应该很了解了,为了后面做一个报警系统,所以这一节给大家说一下如何操作蜂鸣器。其实蜂鸣器在我们身边很常见,小时候玩的玩具很多里面都有着蜂鸣器,现在的报警器,复印机和打印机包括计算机中都是有蜂鸣器的。蜂鸣器就是那种可以发出呜呜呜的声音的设备,下图就是蜂鸣器蜂鸣器的使用是很简单的,大家可以多研究研究可以让蜂鸣器有更多的用处,在之后的文章中我还会使用蜂鸣器做一些东西。
2023-09-07 21:06:45
2071
原创 LinuxUDP通讯
目录前言一、UDP通讯1.UDP通讯概述2.UDP的特点3.UDP的应用二、UDP基本通讯1.socket函数2.bind函数2.1 主机字节序和网络字节序2.2 点分制十进制转换3.recvfrom接收4.服务端完整代码5.sendto发送函数6.客户端完整代码三、TFTP文件接收程序1.TFTP概述2.TFTP通讯过程3.TFTP客户端四、UDP广播1.什么是广播2.广播特点和用途3.广播地...
2023-08-08 12:42:00
1011
原创 异步通讯点亮LED灯
前面我们学习了PWM定时器脉冲来进行点灯,这些只是通过设置好的代码来让LED进行亮灭,有没有什么办法可以通过上位机来对LED的亮灭进行控制呢?对于串口通讯的功能还有很多,大家可以再多多学习一下,后面也会经常使用的。
2023-07-30 17:37:22
263
原创 Qt入门学习记录01
做嵌入式的上位机开发需要要用到Qt的,Qt是一个开源、跨平台的程序和UI开发框架。我们使用Qt可以用Python或者C++进行开发,这里我使用的全部都是C++,不涉及到Python。Qt真的很简单,大家多查查资料就可以了。
2023-07-28 19:12:28
125
原创 CH32V307VCT6单片机程序写入教程
之前在沁恒微电子官网上申请了块互连型的单片机,芯片的型号是CH32V307,之前在论坛上看到他们说这一块单片机和stm32系列的单片机差不多,正好今天板子到了我试了一下,发现真的和stm32差不多。很多没有接触过stm32单片机但是白嫖到板子的朋友可能不会用这块板子,所以我就写了一篇文章来给大家介绍一下这块板子如何使用并且能点亮其中的一个LED灯。这个板子使用的是芯片,这个是基于青稞32位RISC-V(基于精简指令集计算压力建立的开放指令机构)指令集及架构设计的工业级通用增强型MCU。
2023-07-21 18:24:42
5010
9
原创 如何使用PWM来点灯
对于灯等来说有很多种方法,前面介绍了一些基础的点灯方法,比如直接点灯,按键控制点灯,按键中断点灯,但都是比较简单的一些方法也很基础,要问我有没有什么高级点的点灯方法,答案是有的,在这我要介绍一种高级点灯的方法就是使用PWM进行点灯。PWM是脉冲宽度调制,简称脉冲宽调。它利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM一般用在测量、通讯、功率控制雨转换,电动机控制、调光、开关电源,但是在这我们只研究点灯,点灯才是重中之重。
2023-07-19 23:28:38
570
原创 Linux文件操作[提升函数]
上一篇文章介绍了一下关于在Linux中对于文件操作的简单函数,但是只学习了简单函数对文件的一些复杂操作是不太行的,所以这篇文章给大家介绍一下对文件操作的一些复杂函数。这些函数都是比较简单的,大家多练习就可以熟练掌握。
2023-05-11 16:12:17
142
原创 Linux文件操作[简单函数]
在学习LinuxC语言的时候首先需要学习的就是文件的操作,因为在Linux中一切皆为文件,所以所以C语言对文件操作是Linux开发的基础内容,这篇文章主要是讲解一下C语言对Linux文件操作的一些基本函数和操作。对于文件的操作其实还有其它更高级的用法,但是这里只是最基本的操作,大家多练习练习即可学会这些内容。
2023-04-16 15:36:43
216
原创 C语言调用高德地图API
在学习了这么久的C语言,我一直有一个疑问,C语言如何去调用网络中的一些API呢?为了解决这个问题我翻阅了很多资料,但是内容都很少或者就是直接没有,但也不是一无所获,我找到了一个库,这个库叫做libcurl,我通过教程下载了一下这个库后打开了man手册研究了一下这个库,并通过这个编写了调用高德地图的API的程序。curl是一个非常流行的开源网络传输库,它支持多种协议,包括HTTP、HTTPS、FTP、SMTP等。
2023-04-07 16:49:40
1501
5
原创 单片机按键的使用
目录一、IO口输入内容二、什么是按键三、按键分析1.独立按键2.矩阵按键3.抖动四、按键案例1.按下按键点亮一个LED灯2.按键模拟二进制3.矩形按键控制LED灯的亮灭总结一、IO口输入内容在学习按键之前先学习一下如何往单片机的IO口输入内容。其实输入的本质就是往单片机的一个端口在外部给一个电平,然后单片机中的程序去读取那个端口的电平即可完成一次输入。51单片机的输入电平是非常简单的,不需...
2023-02-03 23:02:00
5104
原创 认识单片机
单片机是在一个单芯片上集成了一个微型计算机主要部件单元的微型计算机,在单片机中一般都继承有CPU(包括运算器、控制器、功能寄存器)、存储器、输入输出/输入接口以及其它重要的功能部件。
2023-02-03 23:01:00
442
2
原创 C语言基础--函数
编程中的函数是将一些需要复用的代码放入进去,为了提高一些代码的复用性。这个概念很多人分不清楚,这里重点来说一下。形参是在函数中使用的内容,它并没有一个具体值,这个值是需要让实参给它的。实参是在调用的时候传递的一个参数,它有具体值,是把它的值给形参。其实本质上他们都是变量而已。
2023-01-18 22:13:00
95
香橙派显示系统信息到OLED显示屏
2024-02-02
C语言项目-学生管理系统
2023-04-06
学生成绩管理系统设计程序(数组版本)
2023-01-17
交通信号灯仿真图代码带说明文档和演示视频
2023-01-15
LED流水灯仿真图加代码
2023-01-15
ubuntu开发stm32遇到的问题
2024-02-28
ubuntu所用stm32标准库开发烧录没反映
2024-02-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人