自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(174)
  • 资源 (4)
  • 收藏
  • 关注

原创 【数据结构学习】单链表的指定位置元素删除、链表的释放

删除指定节点//删除某个结点int list_delete(linklist H,int pos){ if(H==NULL){ printf("删除结点失败,链表为空!\n"); return -1; } //获取要删除结点的上一个结点(前驱) listnode *lastnode = list_get(H,pos-1); //当没有前驱,或者该节点不存在的情况下 if(lastnode == NULL || lastnode

2021-02-03 00:27:49 6208 1

原创 【数据结构学习】单链表的创建、尾插元素、指定位置插入元素、获取指定位置元素

单链表链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。“结点的序列”表示线性表称作线性链表(单链表),单链表是链式存取的结构。链接存储方法链接方式存储的线性表简称为链表(Linked List)。链表的具体存储表示为:① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示

2021-02-02 23:04:06 3736 1

原创 【数据结构学习】关于VC++6.0中注释快捷键添加方法

再创建编程项目没有硬件运行程序算法的时候需要借助电脑本身创建项目并进行运行测试,可以测试的软件有非常的多,常见的有VScode,VSx等等,为简单化,我这里使用的是VC++6.0,窗口简介,代码清晰,单是里面的注释快捷键没有。在网上找了下资料,并整理了下。下面说记录下具体方法:1、确保正确安装VC++6.0软件这个就不细说了,要是碰到什么win8 win10不兼容问题这个也非常好解决。2、安装好后,找到软件的安装目录,进入到Common\MSDev98\Macros目录下。3、在该目录下

2021-02-02 20:23:51 1215

原创 【数据结构学习】链式队列的C语言实现

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in ...

2021-02-01 12:10:16 324

原创 【数据结构学习】链式栈的C语言实现

几个概念:1、链式数据结构计算机中的存储数据结构主要分为连续存储结构和不连续存储结构,其中连续存储结构也称为线性表,不连续存储结构也称为链式表。链式结构简单的说就是不连续内存的数组。2、栈栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。栈是允许在同一端进行插入和删除操作的特

2021-01-31 20:40:48 285 1

原创 【单片机笔记】STM8S003F3使用内部基准电压测量供电电压

使用单片机测量外部电压或者供电电源,一般而言都是采用电阻分压的原理,使用一个ADC引脚采集ADC的数据,然后在根据ADC的分辨率和分压反向计算得到输入电压。读过STM8S003芯片手册的都知道,ADC的分辨率是10位的,也就是最大值是1024,如下图正常的采集电压需要分压电路和基准电压:采集到的ADC数据跟芯片的供电电压有关系。下面介绍下一种简便的方法:先说下优点:1、省点2、没有ADC输入硬件具体原理:STM8S003芯片内部又多个ADC通道...

2020-11-18 18:34:04 6405

原创 【单片机笔记】STM32如何烧写多个HEX固件

为满足日常开发需求,现在很多情况下一个片子需要通过BootLoader和Application两段程序组成。Bootloader:一般用作用户升级Application用户程序用,程序的起始地址为:0x08000000,当遇到Application程序有更新的情况下,可以很方便和友好的通过BootLoader程序来对其进行更新。Bootloader更新Application的方式和途径有很多,比如串口的IAP、U盘的IAP等等,本人常用U盘进行升级。Application:用户程序。一般起始地址并不

2020-09-17 12:43:37 3613 3

原创 【单片机笔记】STM32F103系列 PC13、PC14、PC15引脚作为普通IO使用配置代码

STM32F103系列 PC13 PC14 PC15引脚作为普通IO,总是忘记再此做下笔录。附代码:如下void PC13_14_15_Gpio(void){ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE ); PWR_BackupAccessCmd( ENABLE );/* 允许修改RTC和后备寄存器*/ RCC_LSEConfig( RCC_LSE_OFF ); /* 关闭...

2020-06-07 17:31:48 9616 1

原创 【单片机笔记】使用ESP8266的WIFI-MQTT串口透传模块实现TLINK平台测试

以下内容是使用MARS-WIFI-MQTT串口透传工具对TLINK平台中的MQTT协议进行的测试,请用户使用自己的帐号创建设备进行测试。模块手册在下面连接中找:链接:https://pan.baidu.com/s/1V9hYdzxtpKGdeks7H8AW1g 提取码:uryj也可以加QQ群下载(备注MQTT透传模块):733945348进入正题:...

2020-05-07 09:24:54 5008 3

原创 【单片机笔记】分享关于STM32 SPI驱动ST7789 LCD ISP TFT液晶屏幕

偶然的一次机会得到了一块1.3寸的彩色液晶,控制器为ST7789V,支持SPI。对应的其他大小的有2.0的和2.4的,spi用起来还是比较简单的,硬件接口线少方便,刷屏速度还是可以的。这里因为只有1.3的屏(240*240分辨率),所以只测试了1.3的,其他的因为控制器是一样的,所以基本都差不多,无非分辨率不一样。TFT.C文件#include "fy_tft.h"#define T...

2020-04-06 17:48:05 12823 8

原创 【单片记笔记】分享一个纯C语言的base64加密解密算法

base64简介标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。为解决此问题,可采用一种用于URL的改进Base64编码,它在末尾填充'='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免...

2020-03-01 13:32:44 1590 1

原创 【单片机笔记】上海移远公司NB-IOT模组 BC26 使用STM32 AT命令实现连接阿里云数据上传和下载

前言在调试之前看这个数据手册一脸懵,特别是MQTT部分还是独立的,这个和前接触到的上海合宙的模块多少有点出处。另外就是那个AT命令的传入参数也是一脸懵,后来发现BC26的模块好像把MQTT部分单独的做成了支持阿里云服务器的功能。接触过阿里云的设备对接相比都知道,阿里云要求的是一机一密或者一型一密,这个在对于简单的成本低廉的MCU来说无疑是一个很大的考验。而BC26这块还是做的非常友好的,在MQ...

2020-01-08 18:44:26 9016 16

原创 【单片机笔记】STM32之程序加密——读保护

以下内容是在STM32F103系列单片机实验成功!STM32可以对存储在flash上的程序进行读保护.启动读保护后,用户就不能再读写程序了. 所以,在烧写程序之前,需要程序调用关闭读保护.关闭读保护后,会自动清空flash上的程序头文件位于:#include "stm32f10x_flash.h"启动保护,用在main()函数初始化时调用:void Set_Protect(v...

2019-12-23 20:01:34 4614 2

转载 【单片机笔记】data、xdata、code、const之前的区别与关系

在Keil51中,code修饰的变量放在ROM(Flash)中,而const修饰的变量为只读(不可修改),放在RAM中!可以用“codeconst”修饰变量,表示变量存储在ROM中,且为只读,由此看来“code”与“codeconst”修饰变量有一样的功用。KeilMDK中的const与code在KeilMDK中,如进行STM32的开发,code修饰符无法使用,使用的话会报...

2019-12-11 21:47:08 5573

原创 【单片记笔记】基于STM32F103的NEC红外发送接收使用同一个定时器的一体设计

红外接收头很常见,具体就不细说了,这里记录重点:NEC的特征1:使用38 kHz 载波频率2:引导码间隔是9 ms + 4.5 ms3:使用16 位客户代码4:使用8 位数据代码和8 位取反的数据代码当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示...

2019-12-04 11:43:41 1789

原创 【单片机笔记】关于CotexM3和的STM32F103系列的时钟理解及配置

现附上我自行实现的时钟配置函数//RCC_PLLSource:PLL时钟源 //RCC_PLLSource_HSI_Div2、RCC_PLLSource_HSE_Div2、RCC_PLLSource_HSE_Div1//PLLMUL:PLL输入时钟的倍频系数 范围RCC_CFGR_PLLMULL2~16//PLL时钟根据时钟和倍频来确定,选择内部时钟最高64Mvoid SysC...

2019-11-27 14:49:00 915

原创 【单片机笔记】基于NE555的频率可调方波发生器电路

很多时候在测试的时候会用到不同频率的信号源,在没有此电路前最简单的方法就是写个单片机程序让单片机跑起来去让IO口输出一个方波信号,这样的好处是频率可以调,占空比也可以调。弊端就是麻烦。往往在实际测试使用的时候不需要多精准的信号,下面就是最近做的一个电路,用NE555芯片做的,外围几个电阻电容,频率有1Hz、10Hz、100Hz、1KHz、10KHz、100KHz六种,方波占空比为50%,这个电路做...

2019-11-22 11:46:00 23516 7

原创 【单片机笔记】STM32F4那些事之-时钟踩过的坑

之前有用过STM32的F4系列单片机,该单片机的强大之处可以度娘一下,因为打算系统的学习下,所以自己做了一个板子用作学习,把资料都准备好,主要是官方的标准库及例程,学32第一件事情就是要搞清楚时钟,相对传统的51,32的时钟相对复杂很多,M3内核如此,M4内核更甚。下面贴出M4的时钟树:可以看到时钟树很复杂,我用的芯片是STM32F401系列的,官方给的数据是最高时钟能达到84M,我也有朋...

2019-11-21 12:47:10 3785 5

原创 【单片机笔记】分享 电子工程师利器之-自己动手制作DAP Link

先上原理图PCB尺寸如下实物图芯片用的是STM32F103C8,一般用这个足够了,做开发等用这个都基本能满足要求。支持下载和串口。关于固件:这个搜下有很多的,这里也无法直接上传,如果需要可以加QQ群:733945348在群文件下的A12-MARS-DAP-LINK下By Urien 2019年11月13日 16:34:42...

2019-11-13 16:35:40 2931 2

原创 【单片机笔记】分享 电子工程师利器之-自己动手制作STLINK V2

先上原理图之前做过一个版本的STLINK,首先接口是micro USB的,原理图上有很多电阻电容。首先是usb接口问题,usb现在都是用TYPEC口了,不管是现在的各各产品以及常用到的手机,基本上都是这个(IPhone不考虑),再有是改版之前在原来版本的电路上经过增删元件及长时间测试,去除了许多元件,这样整个看起来更加简单,也方便手工焊接制作。PCB尺寸如下实物图...

2019-11-13 16:28:56 735

原创 【单片机笔记】分享 电子工程师利器之-自己动手制作Jlink OB

先上原理图之前做过一个版本的jlink,首先接口是micro USB的,原理图上有很多电阻电容。首先是usb接口问题,usb现在都是用TYPEC口了,不管是现在的各各产品以及常用到的手机,基本上都是这个(IPhone不考虑),再有是改版之前在原来版本的电路上经过增删元件及长时间测试,去除了许多元件,这样整个看起来更加简单,也方便手工焊接制作。PCB尺寸如下实物图芯片...

2019-11-13 16:20:54 1333

原创 【单片机笔记】PWM信号与PPM信号简单理解

PPM信号是航模遥控器输出的一种标准信号,从PPM信号中可以获取7-9个通道的遥控指令数据。PPM看起来很像PWM,很多模型爱好者对于它们产生了误解,有些朋友认为PPM和PWM就是一回事,其实不然,下面我们先说明一下它们之间的区别和关系。PWM,是英文Pulse Width Modulation的缩写,意思就是脉冲宽度调制。脉冲就是由高、低电平组成的信号序列,其中高电平的时间就是这里所说的脉冲...

2019-11-06 20:16:29 10848 3

原创 【单片机笔记】基于STM32硬件平台的最新FATFS 最新版ff14版本的移植

FatFs是一个用于小型嵌入式系统的通用FAT/exFAT文件系统模块。FatFs模块是按照ANSI C(C89)编写的,与磁盘I/O层完全分离。因此,它独立于平台。它可以集成到资源有限的小型微控制器中,如8051、PIC、AVR、ARM、Z80、RX等。此外,还提供了用于微型微控制器的Petit Fatfs模块。特征DoS/Windows兼容FAT/exFAT文件系统。 平台无关。很容...

2019-10-27 22:15:47 2421 9

原创 【单片机笔记】基于STM32F103C8的 USB 外部flash虚拟U盘

学习stm32已经很长时间了,但是一直没有过多的学习stm32的USB部分,因为实际工作还是用的比较少。说起USB那就有的说了,因为USB的功能很强大,这里主要重点记录一下STM32的USB部分,这个官方给的有专门USB库,笔者目前使用的是Cotex-M3内核的STM32F103系列,实验的芯片为STM32F103C8,这个是目前市场上性价比非常高的芯片,也是用的非常多的芯片。USB基础知识...

2019-10-27 03:22:08 8835 14

转载 【单片机笔记】文件后缀名、文件类型之间的关系

结论前置:文件名和文件内容是独立不相关联的,而文件格式与文件内容是相关的。文件名后缀仅用于提供给系统 shell 一个关于文件类型的「暗示」。更改文件后缀名不会改变文件的「格式」,只会影响「系统默认打开这个文件的方式」。文件是什么?文件是存储在系统存储空间(如磁盘)中的一段数据。一个文件由一个特定程序创建,包含了对这个程序有特定含义的一段字节序列,因此每次这个程序打开这同一个文件的时候,获...

2019-10-23 23:27:05 2853

转载 【单片机笔记】论printf,sprintf,vsprintf之间的区别

有C语言写作历史的程序员往往特别喜欢printf 函数。即使可以使用更简单的命令(例如puts),但printf 出现在Kernighan和Ritchie的「hello, world」程序中一点也不会令人惊奇。我们知道,增强后的「hello, world」最终还是需要printf 的格式化输出,因此我们最好从头开始就使用它。但有个坏消息:在Windows程序中不能使用printf。虽然Wind...

2019-09-10 11:15:41 1021

原创 【单片机笔记】数码管的前后今生,分享效率驱动代码

H文件#ifndef __FY_HC595_H#define __FY_HC595_H#include "fy_includes.h"#define HC595B_H (u16)(1<<0)#define HC595B_G (u16)(1<<1)#define HC595B_F (u16)(1<<2)#define HC595B_E ...

2019-09-01 15:52:00 536 1

原创 【单片机笔记】详解ADC一个GPIO实现10键的单击、长按键、长按抬键、保持动作(附源码)

很多时候画的板子因为IC价格低廉,IO口限制、串口数量等因素,在调试的时候不方便,于是做了个AD按键的板子,为了简单画出来的长这样:上图用了三根线(VCC、IO、GND),是因为用的板子是一个很简单的stm8s的板子,没有在AD的IO上加上上拉电阻,上拉电阻在这个AD按键板子上,如果集成上去的话就只需要两根线(IO、GND)就可以。下面是原理图:按键部分非常简单,原理就是采用不同阻...

2019-09-01 15:21:12 6667 7

原创 【单片机笔记】详解如何用廉价NTC电阻准确高效的测量温度(附源码)

使用热敏电阻读取ADC值并根据NTC参数表得到温度数据:参考原理图:本文介绍的程序对应的热敏电阻型号是NTC-MF52AT 10K 5%精度 B值:3950 1%长这样虽然不及一些高价带协议需要驱动协议的传感器,但是价格摆在这里的,不到一毛钱就可以测温了,精度上还是能用的,而且驱动也非常简单。另外注意的是C文件里面的线性表,就是那个常量数组,需要根据所使用的探头的厂家参数...

2019-08-17 15:56:29 9732 8

原创 【单片机笔记】关于字符编码,UTF-8、GBK、UTF8、GB2312之间的区别和关系

UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示...

2019-08-17 13:26:29 4099

原创 【单片机笔记】基于STM32的8通道的开源无线遥控器手柄

MARS STM32遥控器v1.0MARS STM32遥控器v1.0.................. 11.遥控器简介........................... 12.硬件详解............................. 82.1MCU主控部分..................... 82.2电源部分..........................

2019-08-11 16:09:08 13039 12

原创 【单片机笔记】关于RGB彩灯WS2812B的驱动

前段时间做了个88颗灯珠的原形灯板,分别用stm8s003和n76e003写了底层驱动,根据手册要求代码如下:STM8S003#include "fy_ws2812b.h"/*此代码针对stm8s003平台 @16M灯的性质决定,需要一次性刷新,比如16个灯就必须一次性刷新16个,而不能一个一个中间有间隔的刷新,这样就只有一地个灯亮,如果需要花样把不需要亮的...

2019-08-11 14:25:53 26822 13

原创 【单片机笔记】一张图学会Altium Designer等各项设置和输出

此教程来自一个大神朋友!在此表示感谢,记录并分享出来。By Urien 2019年7月28日 10:33:26

2019-07-28 10:33:53 730

原创 【单片机笔记】Altium Designer使用极坐标绘制PCB

Altium Designer版本为16.1先来看一张图:除了特殊的阵列粘贴外就是是用极坐标了,极坐标极大的方便了元件位置的布局,不用考虑元件的旋转角度问题。我这张图就记录是极坐标方式绘制的,极坐标是以角度为计量单位的,而平时用到的是横坐标和纵坐标的长度方式。下面分步骤说明:1、在绘图之前,需要确保所用到的元件pcb库是中心对称的,因为这样才更好的方便去布局。2、确...

2019-07-28 10:26:37 4384

转载 物联网云平台系统设计【一】

物联网云平台系统设计##物联网云平台系统设计下面将谈到几个关键问题:设备如何接入网络? 设备间如何通信? 物联网数据的用途? 如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢? 物联网终端软件系统架构? 物联网云平台系统架构?###1. 物联网设备如何接入到网络?只有设备接入到网络里面,才能算是物联网设备。这里涉及到2个关键点:接入方式以及网络通信方式。...

2019-07-02 09:16:14 17173 1

原创 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(五)

【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(五)整体思路:在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air202模组发送TLINK平台规定格式的payload数据,Air202接收到数据后进行封装并转发 观察TLINK平台的设备数据并下发数据观察串口接收到的数据因为篇幅过长,我这里分成5篇...

2019-06-27 17:50:25 932

原创 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(四)

【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(四)整体思路:在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air202模组发送TLINK平台规定格式的payload数据,Air202接收到数据后进行封装并转发 观察TLINK平台的设备数据并下发数据观察串口接收到的数据因为篇幅过长,我这里分成5篇来详细...

2019-06-27 17:49:51 1143

原创 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(三)

【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(三)整体思路:在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air202模组发送TLINK平台规定格式的payload数据,Air202接收到数据后进行封装并转发 观察TLINK平台的设备数据并下发数据观察串口接收到的数据因为篇幅过长,我这里分成5篇...

2019-06-27 17:49:12 1302

原创 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(二)

【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(二)整体思路:在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air202模组发送TLINK平台规定格式的payload数据,Air202接收到数据后进行封装并转发 观察TLINK平台的设备数据并下发数据观察串口接收到的数据因为篇幅过长,我这里分成5篇...

2019-06-27 17:48:36 1661

原创 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(一)

【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(一)整体思路:在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air202模组发送TLINK平台规定格式的payload数据,Air202接收到数据后进行封装并转发 观察TLINK平台的设备数据并下发数据观察串口接收到的数据因为篇幅过长,我这里分成5篇来详细...

2019-06-27 17:48:06 1939 2

15.Aliyun.rar

基于STM32 ESP8266 AT方式连接阿里云源代码,wifi模块使用的是ESP8266-01,单片机是STM32F103C8T6

2019-06-13

14.STM32F103C8-USART-IAP.rar

基于STM32的串口环形队列IAP,使用1K缓存的办法可以更新任意大小的固件。

2019-05-14

nudemcu相关工具和固件(测试稳定)

nudemcu相关工具和固件(测试稳定,比较适合入门的新手!

2018-07-04

marschen老师的安卓视频教程 重置版第一季

marschen老师的安卓视频教程 重置版第一季 为了下载教程又没有C币只好通过此渠道了

2018-06-04

空空如也

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

TA关注的人

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