- 博客(67)
- 资源 (1)
- 收藏
- 关注
原创 STM32连接阿里云物联网平台
我使用的是ESP8266作为联网设备,连接阿里云物联网平台,之前我使用Arduino的方式连接阿里云平台也是同样的原理,但是Arduino将一些底层的函数进行了封装,我们只需要学会使用Arduino提供的一些库便可以连接阿里云物联网平台进行数据交换。固件烧录成功之后,首先需要使用电脑的串口助手软件,通过简单的AT指令连接WiFi,连接阿里云,然后完成订阅和发布数据,确认好AT指令代码没有问题后,我们才把相关的AT指令封装起来,写进程序中,连接的AT指令只需要熟悉常用的几个即可。
2024-01-26 10:25:17 1997 5
原创 使用ArduinoMqttClient库连接阿里云,并实现发送接收数据(ESP8266)
相比HTTP,它并不是为物联网设备而设计的,它是一种重量级的协议,需要较高带宽的网络环境下才能正常工作,而物联网设备一般都是低功耗设备,它们的带宽和网络连接质量都比较有限,因此MQTT不仅能满足这些设备的需求,还是一种非常经济的通信方式。为了让更多的人掌握阿里云的技术,官方还专门录制的相关的教程,在阿里云还可以申请一些认证,如果求职就业中遇到使用阿里云平台的企业来说,在众多求职者中,拥有官方认证的技术认证很容易脱颖而出,没有的话也是学习能力的一种体现。也些教程留了有一些bug,让人找好几天都找不出来的。
2024-01-12 22:52:54 1492
原创 【传感器文档与工程例程】STC89C52RC摩天MyAntenna激光测距离传感器模块工程例程
文章目录1、模块型号2、模块型号3、产品注意事项4、模块测量接线5、通信协议6、厂家配置的资料1、模块型号我购买的激光测距模块使用的是TTL可输出方式,模块的选择根据使用场景选择,可以参考摩天官方的淘宝店铺。2、模块型号3、产品注意事项4、模块测量接线5、通信协议波特率:9600/19200/38400/115200,默认38400波特率设置需要使用原厂的串口调试助手更改6、厂家配置的资料我将厂家配置的资料发出来供大家参考百度网盘链接:https://pan.baidu.
2023-11-12 14:25:02 617
原创 Arduino ESP8266&ESP32使用AliyunIoTSDK.h连接阿里云物联网平台
AliyunIoTSDK是arduino的一个库,可以在arduino的应用商店中搜索到这个库,当时版本不一定是最新的,而且下载的地址在国外,下载会比较久,有时还不能下载成功,我之前就在下载他的库的时候花费了大量的时间。我这里提供基于AliyunIoTSDK库的开源项目地址:如果网站无法打开,可以使用我已经下载好的项目包:链接:https://share.weiyun.com/urYMY5tN 密码:yr6d78。
2023-11-12 14:22:54 1761
原创 【单片机基础】使用51单片机制作函数信号发生器(DAC0832使用仿真)
CS:低电平有效,片选输入线WR1:低电平大于500ms有效,输入锁存器WR2:高电平有效,与XFER结合可将输入锁存器的8位数据传输到DAC寄存器中XFER:低电平有效,数据传输控制输入线DI0~DI7:8位数据位并行输入,有效时间大于90ns有效VCC:电源输入5V-15VVERF:基准电压输入线-10V~10VRFB:反馈信号输入,可以看成一个反馈监测IOUT1:电流输出1,其值随着输入线性变化IOUT2:电流输出2,与OUT1值之和为一个常数。
2023-10-16 22:15:25 3171
原创 STC12红外接收与NEC解码
红外通信是一种无线通信技术,利用红外光传输信息。红外光波长介于可见光和微波之间,通常在780纳米至1毫米的范围内。红外通信在许多领域得到广泛应用,例如消费电子产品(如遥控器)、安防系统、智能家居、医疗设备、工业自动化等。无线性:红外通信不需要物理连接,通过红外光传输信息,实现无线通信,方便灵活。高安全性:由于红外光的传播范围较短,相对不易受到干扰,通信较为安全。低功耗:红外通信设备通常使用低功耗的电子元件,适合电池供电的设备。成本较低:红外通信设备的制造和维护成本相对较低。
2023-08-24 08:05:52 414
原创 串口环形缓冲区
串口环形缓冲区应用于嵌入式、物联网开发时,当串口接收数据量过大,此时MCU来不及处理而设计的一套算法,将接收的数据存入一个数组,等待空闲时再做处理。
2023-07-28 11:54:22 1456
原创 STM32F10x外部中断/事件控制器(EXTI)应用
外部中断/事件控制器,简称:EXTI(External interrupt/event controller)。管理了20个中断/事件线,每个中断/事件线都对应有一个边沿检测而器,可实现输入信号的上升沿和下降沿的检测。EXTI可以实现每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。
2023-07-15 12:36:58 539
原创 STM32F1x固件库函数学习笔记(一)
ST是意法半导体,M是Microelectronics(微控制器),32表示32位。合起来理解是:STM32就是ST公司开发的32位微控制器。最主要的区别在硬件结构上,微处理器就是一个单芯片的CPU,而微控制器则在集成了CPU和其他电路,构成了一个完整的微型计算机系统。微控制器除了CPU还包含RAM、ROM、串行接口、计时器、中断。
2023-06-16 11:51:55 1581
原创 基于MATLAB的数字滤波器语音信号去噪
滤波器按照信号处理来分可以分为模拟滤波的数字滤波;按照通过信号的频段来分可以问为低通滤波器、高通滤波器、带通滤波器、带阻滤波器、全通滤波器;按照采用的元器件来分可以分为无源滤波器和有源滤波器;按照安放位置的不同可以分为上滤波器和面板滤波器。模拟滤波器是一种使用模拟电路来实现的滤波设备,其主要作用是将电路中的信号经过滤波器后,只留下想要的频率成分,而滤掉其他频率成分。滤波器通常使用基本电学元件组成,如电感、电容、电阻等构建,其工作原理依赖于这些元件对电压和电流处理的方式。
2023-05-29 20:27:21 10379 4
原创 用高中生的思维写一篇MATLAB入门
MATLAB是Matrix Laboratory的缩写,含义为矩阵实验室,最初是为了方便矩阵的存取和运算而开发的接口程序。经过几十年的扩充和完善,MATLAB已经成为集科学计算、可视化与编程于一体的高性能的科学工程计算语言和编程开发环境,目前是世界上最流行、应用最广泛的工程计算和仿真软件之一,几乎成为各类科学研究和工程应用中的标准工具。目前,MATLAB在数值计算、信号处理、图像处理、自动控制、算法设计和通信仿真等众多领域都获得了广泛的应用。
2023-04-09 15:53:46 571
原创 STC12驱动MLX90614红外测温模块在LCD1602显示
通过芯片手册我们可以了解到这个模块的输出有PWM和SMBus方式,PWM长期做嵌入式开发的已经很熟悉了,那么什么是SMBus呢?SMBus(系统管理总线),最早由Intel提出,应用于移动PC和桌面PC系统中的低速率通信,是一种两线的接口。通过它,各设备之间以及系统的其他部分可以之间可以相互通信,它是基于IIC原理,接口和数据格式类似与IIC,同样有两个接口(1个时钟、一个数据),7位数据。可以说SMBus是IIC的一个子集。
2023-01-21 23:01:39 636
原创 Mini MP3 Player播放器简介与STC12例程
官方的英文文档串口模式只是寥寥数笔,于是我找到mini MP3板载的芯片“YX5200-24SS串口语音芯片”的资料,对串口控制有非常详细的说明。我们采用AD模块按键,代替传统的矩阵键盘连接方式,它是利用单片机日益强大的AD功能,我们的模块默认配置2个AD端口,20个按键电阻分布。完全支持FAT16、FAT32文件系统,最大支持32G的TF卡,支持32G的U盘,64M字节的NORFLASH。图1-5-1-2:YX5200-24SS串口语音芯片串口功能简介。图1-5-3-1:按键控制模式接线图。
2022-12-21 21:52:45 5295 3
原创 【通信基础】TTL、RS232、RS485
RS2321、RS232基本概念2、DB9串口定义及接线参考3、RS232经典电路RS4851、RS485简介2、特点3、传输距离4、经典电路RS2321、RS232基本概念RS(recommend standrd)表示推荐标准,232是标识号。RS-232-C接口(又称EIA RS-232-C)是一种串行通信通信接口(“-c”版本)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端厂家及计算机终端生产厂家共同制定的用于串行通信的标准,主要用于不同的设备之间方便.
2022-12-10 16:06:26 10185
原创 在arduino离线的搭建ESP32环境
链接:https://pan.baidu.com/s/1BRqtaNBU_r-RqaItG7ClaQ。此时,便会发现在arduino IDE里工具–开发板选项中,多出了很多ESP32的开发板。将文件解压放到arduino安装目录“hardware”文件夹下。我的文件夹是D:\arduino-1.8.15\hardware。我们选择其中一款,点亮一个LED灯来验证我们环境搭建成功。
2022-12-08 15:21:42 1053
原创 在Arduino快速配置ESP8266开发环境
一开始入门ESP8266的时候,按照官方的教程在首选项中附加开发板管理器网址这种方法配置ESP8266的开发环境,当时捣鼓了很久。现分享一个可以快速配置ESP8266环境的方法。安装前准备首先,我们需要安装有Arduino IDE、电脑成功按照ch340的驱动、ESP8266离线安装文件、最后有一块ESP8266的开发板。
2022-12-08 08:41:25 2517
原创 【单片机基础】ADC0832详解
文章目录一、ADC0832介绍1、功能特点2、引脚说明3、ADC0832与单片机接口4、工作时序二、例程一、ADC0832介绍ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,已经有很高的普及率。学习并使用ADC0832 可使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。——来源百度百科资料链接:ADC0832百度百科1、功能特点8位分辨率,逐次逼近双通道A/D转换输入输出电平与T
2022-12-04 15:55:56 31369 3
原创 【单片机基础】初始51单片机
单片机到全称是单片微型计算机,是将计算机到主要部分集成在一颗芯片上到微控制器。扩展知识微处理器是由一片或少数几片规模集成电路组成到中央处理器(CPU)
2022-12-02 13:10:37 3346
原创 【单片机基础】I2C通信-基于STC89C52RC
总线上所有的从机接收的该字节数据后都将这7位地址与自己地址进行比较,如果相同,则认为自己被主机寻址,然后根据第八位将自己定义为发生器还是接收器。主机发送起始信号必须先发送一个字节数据,该数据的高7位为从机地址,最低位表示后续字节传送方向,‘0’表示主机发送数据,‘1’表示主机接收数据。IIC总线上发送数据是广义的,既包括地址,又包括真正的数据。2、主机发送一个字节数据指明从机地址后续字节传送的方向。基于EEPROM向4单元存数据(主机向从机写数据)3、被寻址的从机发送应答信号回应主机。
2022-11-27 10:27:47 1984
原创 【单片机基础】89C52单片机串口通信
1、89C52串口通信简介2、串口通信需要配置的寄存器2-1、串行数据缓冲器SBUF2-2、串行控制寄存器SCON(1)SM0 SM1(2)SM2(3)REN(4)TB8(5)RB8(6)TI(7)RI1、89C52串口通信简介STC89C52系列单片机内部集成有一个功能很强的全双工串口通信,与传统8051单片机完全兼容。设有两个互相独立的接受、发送缓冲器,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入。因而两个缓冲器可以共用一个地址码(99H)。两个缓冲器统称为串.
2022-11-15 09:20:07 10131 8
原创 vs code添加C51关键字及C51头文件
vs code 是一个强大的文本编辑器,这篇文章主要介绍我用 vs code编程单片机的方法,能够把vs code搭建成一个很好的单片机编辑器。现在我主要用vs code来写代码和阅读代码,但是编译我还是用keil。1、vs code准备设置添加代码"C_Cpp.default.includePath": [ "C:/Keil/C51/INC" ]2、keil工程设置为了演示,我在桌面新建一个文件夹,把我当keil工程存储到文件夹里,文件夹命名Damo + 时间
2022-11-15 06:10:21 6717 2
原创 【单片机基础】按键与矩阵键盘识别
但是软件消抖是以CPU资源为代价,会降低程序的执行效率,所以我们在做大型项目开发时,要尽量避免使用延时消抖。我写好了一段矩阵键盘例程,封装成一个函数库。日后直接调用和工程参考,例程主要功能是当矩阵键盘任何值按下时,向串口发送当前按下矩阵键盘的值,例程带有矩阵键盘松手检测功能。:利用电容的放电延时,采用并联电容法,使两端电压平缓变化,直至电容充放电到达一定电压阀值时,单片机才能读取到电平变化。我们知道机械按键在按下和弹起时,会因为产生抖动,出现高低电平快速变化,因此我们必须进行消抖处理。
2022-11-13 22:03:03 2988
原创 【单片机基础】单片机数码管驱动函数(三极管驱动)
将单片机数码管显示驱动封装成一个函数,方便需要用到的时候直接调用1、数码管电路原理图2、数码管码表3、位选IO管脚定义4、延时函数5、动态显示一位数码管6、动态显示两位数码管7、动态显示三位数码管8、动态显示4位数码管9、主函数调用示例1、数码管电路原理图2、数码管码表//数码管码表,共阳极unsigned char leddata[]={ 0xC0, //"0" 0xF9, //"1" 0x
2022-11-13 19:30:29 3986
原创 【单片机基础】stc89c52单片机实现流水灯的三种编程方式
效果图附上这个仿真电路链接:https://share.weiyun.com/QLLKXFGT密码:rz3w5c实现流水灯的第一种方式/*来回点亮LED的第一种方法*/#include <reg52.h>//包含51一些特殊功能寄存器#define uchar unsigned char#define uint unsigned intvoid delay_10ms(uchar i){ //毫秒级延时函数 //在12MHZ下晶振下,大约延时10ms/次 u
2022-11-13 11:14:26 6761 1
原创 【单片机基础】单片机的时序概念
节拍:把 震荡脉冲的周期 定义为节拍,用P表示,也就是震荡周期fosc状态:振荡脉冲fosc经过二分频后,就是单片机时钟信号的周期,定义为状态,用S表示。一个状态包含两个节拍,其半周期的节拍叫P1,后半周期对应的节拍叫P2机器周期:MCS-51系列单片机采用定时控制方式,有固定的机器周期。规定一个机器周期的宽度为6个状态,即12个脉冲周期,因此机器周期就是脉冲的十二分频。**指令周期:**执行一条指令所占用的全部时间,即所需机器周期数STC89C52单片机时序:状态周期: 2个振荡周期机器
2022-11-12 22:01:46 3376 2
原创 入门学习C语言需要使用vc++6.0吗?
但作为专门搞嵌入式的来说,没有代码提示反而没这么重要,因为后续学习C51单片机开发、STM32开发、arduion与ESP8266开发几乎每一个代码都是手打上去到没有代码提示。本篇文章对老谭到书步进行过多到评价,这篇文章自己只是以学长的身份说一下小白入门C语言软件到选择和我自己使用VC++6.0这个软件编程到感受,希望能给入坑到小白一些建议。提到VC++便会顺带提一下网上吐槽最多到谭浩强到C语言教材,回顾我以前入门学习C语言到的时候,看的第一本书也是这一本。:没有代码提示,软件老旧问题多。
2022-10-08 17:46:13 875
原创 STC12C5A60S2软件模式SPI读取DS1302时钟实时显示在1602
我们知道单片机内部有定时器,但定时器只能表示一个时间段,这不是唯一的时间。比如我们应用单片机写一个交通灯;当我们应用单片机来表示一个时间点,这是唯一的,表示单片机需要做一些必须到某一个时间才能做的事情,所以需要用到RTC,如应用单片机写一个定时炸弹,这时我们就需要实时的时钟计时。使用实时的实时计时还有一个好处就是能够减少时间的误差。关于RTC,在钟表、电子日历、手表、智能手环等都有实际应用。
2022-09-17 14:33:07 1671
原创 STC12C5A60S2使用模拟IIC通信与AT24C02芯片编程
使用STC12的模拟IIC与AT24C02编程并不是这一篇文章的重点,重点是能够熟练掌握IIC通讯协议。学过编程的人应该都有同样一种体验,当自己精通了一种编程语言的时候再去学习其他编程语言,就觉得非常的容易,虽然有一些差异,当基础内容相似。同样的,同样的我们掌握的AT24C02芯片的IIC读写功能,以后使用STM32、ESP8266控制其他设备的IIC也能得心用手。IIC通讯协议(Inter - Integrated Circuit)是由Phiilps公司开发的,由于它。
2022-08-25 11:36:15 2031 1
原创 STC12驱动PCF8575
PCF8575是一个I/O扩展芯片,德州仪器的芯片。有3个硬件地址引脚寻址,也就是说这个芯片可以设置8个IIC器件地址;芯片工作电压2.5V~5.5V,具有16位准双向输入/输出(I/O)端口(P07-P00、P17-P10)。当我们在做嵌入式开发时,MCU接口不够用可以考虑使用这一款芯片扩展,详细查看相关芯片手册...............
2022-06-14 21:00:15 6008 4
转载 【C语言学习笔记】提取一个浮点数的每一位数
仅供参考#include <stdio.h>void main(){ /*提取一个浮点数的每一位*/ double i = 1234.5678; int qian,bai,shi,ge,thnths,percentile,thousandth,tenThousandthBit; qian = (int)i/1000; bai = (int)i/100%10; shi = (int)i/10%10; ge = (int)i/1%10
2022-04-04 20:45:06 3067 1
转载 【STC8学习笔记】STC8A8K64S4A12 ADC模数转换,使用串口打印出来
STC8系列单片机内部集成了一个12位的15通道A/D转换器,使用STC8内部ADC时,要使AVref连接参考电压,ADC_AVcc和ADC_AGnd接好电源和地线!内部ADC引脚可参考芯片手册ADC_CHS寄存器配置可得知参考例程#include <STC8.h>#include <intrins.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned int /*常
2022-03-27 16:22:07 2482 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人