- 博客(32)
- 资源 (2)
- 收藏
- 关注
原创 STM32—ADC(直接采集、双通道DMA采集) Day6
软件:STM32CubeMX,MDK-ARM硬件:蓝桥杯物联网Lora开发板,板载芯片STM32L071一、前言ADC,模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器(ADC)来实现的。板子上所使用的两个电位器,接的是PB0、PB1,也就是通道8和通道9。二、单通道ADC这里采用的是OLED显示电压,对OLED有疑惑地可以看看我的文章。也可以使用串口发送到上位机。1、STM32CubeMX配置在Analog中选择ADC的通道9。给板子上的两个LED
2021-01-20 11:56:10
3436
2
原创 Zigbee开发实践 (一)CC2530基础开发—点灯
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-10-27 23:07:50
3167
原创 上拉电阻和下拉电阻判断
判断上下拉电阻时,只需要看按键按下之前,两端是高电平还是低电平。例如:R1这个电阻,一端接VCC,在按键按下之前两端是高电平,所以它就是上拉电阻,是为了检测低电平输入。R2这个电阻,一端接GND,在按键按下之前,两端是低电平,所以它就是下拉电阻,是为了检测高电平输入。...
2020-10-27 23:01:08
3807
原创 单片机IO口输入输出模式判断
要判断单片机IO口输入输出模式,是要判断单片机的IO口电平由谁决定的,看是由单片机决定还是外电路决定的。1、如果判断单片机的此IO口电平是由外电路决定而非单片机所决定的,则此IO口就是输入IO口。2、如果判断单片机的此IO口电平是由单片机决定而非外电路所决定的,则此IO口就是输出IO口。...
2020-10-27 22:48:39
4904
5
原创 嵌入式C语言基础总结
一、数据类型二、关键字1、extern 变量申明C 语言中 extern 可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。2、static 声明静态变量使用static其值就会在编译时设定,并且无法在运行时改变3、const 声明只读变量4、typedef 用以给数据类型取别名(增强代码可移植性),例如typedef signed char uint8_t;typedef signed
2020-08-19 22:47:32
462
原创 Arduino Esp8266开发 (三)上传数据到阿里云MQTT服务器
一、前言1、能够使用Arduino的软串口控制Esp8266接入网络,可以看看我的前两个博客。2、了解MQTT协议,阿里云搭建MQTT服务器。3、需要的库文件WiFiEsp库是一个Arduino的封装好AT指令的WiFi操作库,可以使用Arduino的软串口操作PubSubClient是一个用于Esp8266发布/订阅MQTT消息的库。链接:https://pan.baidu.com/s/1mAaIbO3-SzVaN-jaaFwVbw 提取码:ol2p4、修改Esp8266串口波特率为96
2020-08-09 20:28:20
5785
3
原创 Arduino Esp8266开发 (二)DHT11数据上传至网络调试助手
一、前言这次使用库文件uartWiFi进行开发,这个库文件比较简单,熟悉AT指令之后一般就可以看懂。这个库文件我修改了一些我感觉有问题的地方。使用时如果是使用Arduino UNO可以保持不动,使用Arduino MEGA的话,将uartWIFI.h里面的UNO相关的注释掉就行。uartWIFI下载地址,里面有原版链接:https://pan.baidu.com/s/1Ao8jbLEzUVXLyArBO92gFA 提取码:ne25如果需要DHT11库文件的,请移步DHT11解析二、代码#in
2020-08-04 10:36:25
2597
原创 C语言贪吃蛇—基于EasyX图形库
一、编译环境1、VS2017(VC++6.0也可以)2、EasyX库(C/C++的图形库) EasyX Library for C++ (Ver:2018春分版) http://www.easyx.cn graphics.h二、代码#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <graphics.h>#include <conio.h>#include <stdlib.h
2020-08-02 21:40:35
2497
2
原创 STM32—时钟树 Day5
软件:STM32CubeMX,MDK-ARM硬件:蓝桥杯物联网Lora开发板,板载芯片STM32L071一、STM32L0时钟系统简介1、LSI RC,低速内部时钟(RC振荡器),是看门狗(WatchdogLS)的唯一时钟来源,可以作为实时时钟RTC和主时钟输出(MCO)的时钟源。2、LSE OSC,外部低速时钟(晶振),输入输出引脚接OSC32_IN、OCS32_OUT可以作为实时时钟RTC和主时钟输出(MCO)的时钟源。精度高于内部低速时钟。3、MSI RC,全称为Multispeedint
2020-08-02 21:13:34
483
原创 MQ-2烟雾传感器解析
一、工作原理可用于家庭和工厂的气体泄漏监测装置,适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。故因此,MQ-2可以准确来说是一个多种气体探测器。MQ-2的探测范围极其的广泛。它的优点:灵敏度高、响应快、稳定性好、寿命长、驱动电路简单。MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200- 300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率
2020-08-02 18:05:28
33188
2
原创 PulseSensor心率传感器解析
一、原理说明PulseSensor是使用光电容积法,光电容积法的基本原理是利用人体组织在血管搏动时造成透光率不同来进行脉搏测量的。其使用的传感器由光源和光电变换器两部分组成,通过绑带或夹子固定在病人的手指或耳垂.上。光源一般采用对动脉血中氧和血红蛋白有选择性的一定波长( 500m^ 700nm)的发光二极管。当光束透过人体外周血管,由于动脉搏动充血容积变化导致这束光的透光率发生改变,此时由光电变换器接收经人体组织反射的光线,转变为电信号并将其放大和输出。由于脉搏是随心脏的搏动而周期性变化的信号,动脉血管容
2020-08-02 16:24:56
13928
10
原创 STM32—UART中断收发 Day4
软件:STM32CubeMX,MDK-ARM硬件:蓝桥杯物联网Lora开发板,板载芯片STM32L071一、STM32CubeMX配置1、先在连接(Connectivity)里面将UART2设置为异步通信模式2、打开UART中断3、将系统核心(System Core)里GPIO里面的两个USART设置为上拉模式4、将PC15设置为GPIO_Output,并且命名为LED二、代码1、UART中断接收函数:HAL_UART_Receive_IT,这个和STM32CubeMx玩转STM32—
2020-07-30 11:17:50
1268
2
原创 STM32—按键中断 Day3
一、SMT32CubeMX配置1、将PC14设置为GPIO_EXTI14外部中断模式,命名为KEY;将PC15设置为GPIO_Output模式,命名为LED。2、将PC14的中断触发模式设置为下降沿触发二、代码1、在stm32l0xx_hal_gpio.c里面可以看到处理中断请求的函数void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin){ /* EXTI line interrupt detected */ if(__HAL_GPIO_EX
2020-07-28 21:27:04
901
原创 DHT11解析
一、DHT11工作原理1、获取数据DHT11包括一个电阻式感湿元件和一个NTC测温元件。这两个获取温湿度数据的方式都差不多,利用湿(温)敏元件的电气特性(如电阻值),随湿(温)度的变化而变化的原理进行湿(温)度测量。2、数据发送数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验位总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机
2020-07-27 16:26:59
25305
2
原创 STM32—UART通信 Day2
一、STM32CubuMx配置1、先在连接(Connectivity)里面将UART2设置为异步通信模式2、将系统核心(System Core)里GPIO里面的两个USART设置为上拉模式二、代码1、HAL_UART_Transmit解析这个是这个发送函数的定义:HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)(1)U
2020-07-26 22:55:41
999
原创 Java异常处理 Day8
1、异常发生的原因有很多,通常包含以下几大类:(1)用户输入了非法数据。(2)要打开的文件不存在。(3)网络通信时连接中断,或者JVM内存溢出。2、异常主要的的种类(1)检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。(2)运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。(3)错误: 错误不是异常,而是脱离程序员控制的问题。错误在代
2020-07-17 16:09:24
188
原创 Java正则表达式 Day7
一、java.util.regex 包主要包括以下三个类:1、Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。2、Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 match
2020-07-13 22:16:15
160
1
原创 STM32—点灯 Day1
一、STM32CubeMx配置1、将PC15端口设置为GPIO_Output,然后用User_Lable命名为LED。2、下面的是工程配置3、勾选这个,他会把一些函数分装在另外一个文件里面,让你的main.c看起来更整洁。例如:MX_GPIO_Init(void)函数,会封装在一个gpio.c文件里面。二、keil只需要在main函数里面添加while(1)里面的四行代码就行,其他的函数STM32CubeMx已经写好了。int main(void){ HAL_Init();
2020-07-12 10:49:09
860
2
原创 Java日期时间 Day6
Java 休眠(sleep)sleep()使当前线程进入停滞状态(阻塞当前线程),让出CPU的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。/* * Author: 也无風雨也无晴 * Date: 2020/7/11 */ import java.util.Date;import java.util.GregorianCalendar;import java.util.Scanner;public class DateTest { p
2020-07-11 21:35:50
201
原创 Java的Character类 Day5
1、使用方法2、例子用Character方法将字符串中的小写字母转大写,大写字母转小写。/* * Author: 也无風雨也无晴 * Date: 2020/7/9 */import java.util.*;public class translate { Scanner sc=new Scanner(System.in); public void trans(){ System.out.println("请输入字符串:"); String
2020-07-09 20:25:37
695
原创 Java的Math&Number类方法 Day4
一、Math类Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。二、Math&Number类/* * Author: 也无風雨也无晴 * Date: 2020/7/7 */class Math_Test{ void math() { System.out.println("90 度的正弦值:" + Math.sin(
2020-07-07 10:10:26
270
原创 Java继承 Day3
一、继承的作用子类可以具有父类当中的属性和方法,子类就不会存在重复的代码,维护性也提高,代码也更加简洁,提高代码的复用性(复用性主要是可以多次使用,不用再多次写同样的代码)。二、继承的特性1、子类拥有父类非 private 的属性、方法。2、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。3、子类可以用自己的方式实现父类的方法。4、Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是
2020-07-06 15:52:22
154
原创 Esp8266无法连接服务器 已解决!
零、先看效果一、Esp8266(客户端)配置1、设置Wifi模式:AT+CWMODE=3响应:OK2、重启一下:AT+RST响应:OK3、连接路由器AT+CWJAP="ssid","password" //你家Wifi的账号密码响应:OK4、设备连接服务器(要在虚拟机上的网络调试助手连接网络之后再输入)AT+CIPSTART="TCP","192.168.1.11",8080响应:OK二、服务器端配置因为我在Win10上尝试了许多方法(包括关闭防火墙、增加入站规则等等
2020-07-05 15:14:22
26724
16
原创 Java变量类型 Day2
Java 中静态变量和实例变量区别1、静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。2、实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。package Test;/* * Author: 也无風雨也无晴 * Data:
2020-07-04 15:32:44
140
原创 Java对象和类 Day1
Java对象和类一、publicjava 程序是从一个 public 类的 main 函数开始执行的,(其实是main线程),就像 C 程序 是从 main() 函数开始执行一样。 只能有一个 public 类是为了给类装载器提供方便。 一个 public 类只能定义在以它的类名为文件名的文件中。每个编译单元(文件)都只有一个 public 类。因为每个编译单元都只能有一个公共接口,用 public 类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的 public 类,编译器就
2020-07-03 19:59:50
214
原创 数据结构—图及其应用(交通问题,实现最短路径、最短时间、最少费用查询)
数据结构—图及其应用(交通问题,实现最短路径、最短时间、最少费用查询)1、任务描述(1)、任务:设计一个城市交通咨询模拟系统,利用该系统实现至少两种最优决策:最短路程到达、最省时到达等线路规划。(2)、内容:用户驾车出行由于出行目的的不同对道路路线选择的要求也有不同。例如,有的希望在途中的路程尽可能短,有的则可能希望路程中时间最短。为了能满足广大旅客的需求,编制一个城市交通咨询模拟系统,选取城市部分位置、道路抽象为程序所需要图的顶点和边,并以城市道路长度(路程),道路的某时段的速度等信息作为
2020-05-25 15:37:05
9874
5
原创 Linux编程(1)——文件和目录相关命令
第一个需要知道的是man指令,可以查询指令用法。例如 man ls。1、cd 切换目录2、ls 查看目录下有什么文件ls -R 显示所有文件夹下的所有文件-a 不忽略那些以点开头的文件-l 用长格式的格式来显示,可以显示详细信息3、pwd 显示当前所在文件夹4、cat 查看文件5、mkdir 新建文件夹6、rm -rf -file 删除文件夹7、touch 创建...
2020-02-01 17:19:07
185
1
数据结构—图及其应用(交通问题,实现最短路径、最短时间、最少费用查询).rar
2020-05-25
MATLAB课程设计代码.zip
2020-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人