自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 cortex-debug 安装记录

因为在调试的时候launch.json中,是使用。,代码中的路径定义与电脑上的有少许区别。处理路径时,记得将其中的单斜杠改为。路径连接到 \\bin 下。

2024-01-13 21:38:21 595

原创 网络编程1

http,tcp,udp

2023-03-07 16:25:00 118

原创 ESP8266连接到onenet云平台

esp8266

2023-02-25 21:46:02 1613 1

原创 stm32固件库点灯

stm32固件库点灯

2022-12-31 17:48:08 149

原创 socket服务器

socket

2021-12-24 10:28:12 173

原创 STM32固件库新建工程

1、第一步新建工程2、新建完工程后,需要添加我们需要的文件①先建立新的文件夹如图②建立后,导入STARTUP 启动文件USERCMSIS 内核的配置文件FWLIB 外设相关的驱动3、完成工程的建立4、尝试进行编译5、修改(由于缺少文件路径的定义导致编译失败)添加三个东西,分别是 CMSIS内核的路径,驱动的.h文件的路径,user文件的路径6、再添加一个头文件的定义;...

2021-12-02 23:48:54 454

原创 蓝桥杯 基础练习 分解质因数

问题描述  求出区间[a,b]中所有整数的质因数分解。#include <iostream>#include <math.h>using namespace std;int main(){ int a,b; int k; int j; int num; cin>>a>>b; for(int i=a;i<=b;i++) { printf("%d=",i); //先输出要找的每一个数; num=i..

2021-11-17 20:59:20 223

原创 蓝桥杯 基础练习 字符串对比

基础准备1、C++输入字符串的几种方法①直接通过“cin>>”进行输入;如果字符串之间有空格,则无法完整输入,空格过后的字符不会被输入;②可以考虑使用 “gets()”函数,该函数不会遇到空格就结束输入;将但是该函数存在一些‘未知问题’,要谨慎使用。同时,如果使用gets函数进行输入字符串,会无限读取,不管你设定的大小;所以要,‘谨慎使用’,因为容易导致溢出,定义时要将容量尽量设置大。③cin.getline(数组名,字符数)就像代码里面写的,只接..

2021-11-16 12:02:20 314

原创 基础练习 Fibonacci数列

问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。#include <iostream>using namespace std;/*使用递归会导致 超时运行int fib(int n){ if(n==1||n==2) { return 1; } return fib(n-1)+fib(n-2);}*//*使用数组+函数会导致内.

2021-11-10 17:37:48 124

原创 题目 1917: 蓝桥杯算法提高VIP-快乐司机

基础复习1、对小数的输出printf("%a.bf",tmp);%a.bf a是控制整数部分的位数;b是控制小数部分的位数2、结构体内元素的大小排序对sort函数的调用;通过cmp()函数确定要排序的元素;【cmp()函数是bool型】然后在主函数中调用sort函数,最后加上参数cmp;return a>b; 是降序排列,从大到小;< 则反过来#include <iostream>#include &l...

2021-11-09 23:30:28 177

原创 蓝桥杯练习BASIC-13

C++库函数的调用排序函数/* 头文件 */#include <algorithm>sort函数升序排列:sort(a,a+n,cmp)a是数组名蓝桥杯练习BASIC-13问题描述  给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200#include <iostream>#include <algorithm>using namespace std;int main(){..

2021-11-08 12:08:41 388

原创 Linux常用的命令(基础入门)

pwd 查看显示当前所在目录ls 显示当前目录下的文件cd+文件名

2021-10-01 15:09:27 53

原创 简单了解C语言

一、什么是C语言面向过程的程序设计|| C以事件为中心的编程思想;分析出解决问题所需的步骤,通过函数将每一步逐步的进行实现,使用的时候将每一个依次依次进行调用面向对象的程序设计|| C++,Java以事物为中心,(以人为中心)二、各个数据类型八进制整常数:必须以0开头;数码取值是0-7015=5* 8º+1* 8¹ =130177777=7* 8º+7* 8¹+7* 8²+7* 8³+7* 8(4)+1* 8(5)=65535十六进制整常数:前缀一般是 0X、0x;数码取值为0-9,A-F

2021-07-27 18:19:21 87

原创 STM32系统定时器SysTick

一,系统定时器的介绍1.系统定时器是24位定时器,且只能递减2.原理:重装载寄存器里面的重装载值reload递减,,当递减到0会触发中断,并且会有 置位countflag标志,VAL表示当前值(即递减过程中的那个值)。然后reload继续从预设值开始递减,周而复始,循环往复。使用系统定时器不用delay函数的原因:delay函数执行的时候会占用CPU的内存主要通过设置 reload的值,来设置时间是多长二、系统定时器的基本配置(一)结构体//在core_co3.h里面typedef

2021-04-16 22:59:47 187

原创 STM32采用定时器输出PWM

一,PWM的模式CNT计数器当前值 ARR自动重装载值 CRRx捕获/比较寄存器值模式一 PWM 边沿对齐模式1.向上计数时:当TIMx_CNT【计数器当前值】<TIMx_CCRx【比较值】时通道1为有效电平,否则为无效电平;2.向下计数时: 一旦TIMx_CNT【计数器当前值】>TIMx_CCRx【比较值】,通道1为无效电平,否则为有效电平。模式二 中央对齐模式1.向上计数时: 当TIMx_CNT<TIMx_CCRx时,通道1为无效电平,否则为无效电平;2.向

2021-04-15 22:23:42 256

原创 stm32定时器点亮LED灯

一,定时器STM32F1系列共有 八个定时器2高级,4通用,2基本二,通用定时器(一)通用定时器的特点:①在APB1低速总线上②16位向上/向下计数模式,有自动重装载计数器 (TIMx_CNT)③16位可编程,有预分频器(计数器时钟频率的分频系数为1~65535,任意数值) (TIMx_PSC)④有四个独立通道,互不影响 (TIMx_CH1~4)1.输入捕获 2.输出比较 3.PWM生成 4.单脉冲模式输出⑤可使用外部信号 (TIM_ETR)1.计数器模式向上,

2021-04-12 21:33:56 2437

原创 stm32串口的中断接收

在找中断服务函数,使用了USART1就用1的函数,定义为void类型 USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT);//得到中断标志函数 USART_ReceiveData(USART1);//串口数据接收函数

2021-04-09 21:20:39 2989

原创 重定向fputc函数实现printf串口发送

1、先要包含头文件 "#include <stdio.h>"2、重定向fputc在usart.c里面int fputc(int ch, FILE *f){ USART_SendData(USART1, (uint8_t)ch); //将字符强制转换为无符号整型 while(USART_GetFlagStatus(USARTx,USART_FLAG_TXE)==RESET); //检测 return ch;}3、选项中,选上“调用库函数”

2021-03-28 20:43:41 3211

原创 stm32之串口通信

一、数据的传送方式1.串行通信速度慢,但占用资源少,按顺序传输、逐个位传输2.并行通信速度快,但占用资源多,各个位同时传输、多位传输二、数据的通信方式1、单工通信 iic,spiA发--单向通道--B收2、半双工通信 spiA发--双向通道--B收 / B发--双向通道--A收(一方向发送时,另一个就不能同时进行发送)3、全双工通信 usart,spiA发、B发--双向通道--B收、A收(两个方向都可以同时发送,传输)三、数据的同步方式【同步 &a

2021-03-26 22:38:12 350

原创 stm32利用外部中断控制小台灯

震动传感器发生震动的时候是低电平状态;不发生震动的时候是高电平状态所以IO口的输入模式选择 下拉输入来监测是否受到的震动#include "shakeLight.h"#include "stm32f10x.h"void shakeLight_demo(void){ GPIO_InitTypeDef shakeLight;//GPIO口的结构体设置 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//APB2总线下的GPIOA口

2021-03-20 02:55:48 354 1

原创 stm32固件库点亮LED灯

准备工作建立一个led.c和led.h 文件搞清原理图,查看如何点亮led.h要 #include “stm32f10x.h” 包含库函数led.c要 #include “stm32f10x.h” 包含库函数(一)使能APB2时钟,在“stm32f10x_rcc.h”中,找到使能配置函数void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);在“stm32f10x_rcc

2021-03-14 21:37:40 417

原创 STM32的输出模式

推挽输出数据寄存器输出(0或1),到输出控制电路,经过反向器,再经过PMOS/NMOS管,输出到I/O口【内部等效电路】INT到 反向器后(低电平变为高电平/高电平变为低电平);若输出为 1 ;经过后变为 0 ;PMOS管中,Ug= 0<Us=VDD=1,PMOS导通,VDD接到OUT输出高电平NMOS管中,Ug=0=Us=GND=0,NMOS管截止若输出为0,经过反向器,变为1NMOS管中,导通;因为 Ug=1>Us=0=GNDOUT 接

2021-03-14 15:01:44 212

原创 数据结构之插入排序

一,先定义一个结构体来存数组struct p{ int k;};//定义一个p类型的结构体,里面有int型的数据二,插入排序1.

2020-12-23 01:28:39 232

原创 数据结构之快速排序

看一下动图就能粗略懂得快速排序的算法结构了(1)将数组的第一个数定为 标记(2)从后面开始比较,若 该数 比 标记数 大,则不管(因为我们的目的就是降序排序);若 该数 比 标记数 小,将该数进行位置转换,调到前面,现在 标记数 的那个位置----即与 标记数 互换位置(3)再从前面开始比较,同理,若数 比 标记数 小,则不管;若 数 比 标记数 大,将该数进行位置互换,调到后面以上是主要思路进行完一次循环后,得到的结果是 在标记数的左端的数比标记数小,在右端的数比标记数大;...

2020-12-19 20:38:33 768 1

原创 队列和栈的使用

队列的引用(STL容器)在开头需要进行引用 #include <queue>在主函数里面需要定义一个对象 queue <int> qqueue 的基本操作有:入队,如例:q.push(x); 将x 接到队列的末端。出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。访问队首元素,如例:q.front(),即最早被压入队列的元素。访问队尾元素,如例:q

2020-11-13 21:29:18 71

原创 LCD1602

一、RS 数据/命令选择端RW 读/写选择端E 使能信号D0-D7 数据显示二、操作步骤1、初始化2、写命令(RS=L)设置显示坐标RS=0;RW=0;//都为低,表示写指令3、写数据(RS=H)RS=1;RW=0;//写入数据指令初始化指令,0x38显示关闭,0x08清屏操作,0x01显示打开,0x0c#define DataPort P0 //D0-7八个数据口写操作时序...

2020-10-13 15:33:16 442

原创 串口通讯

串口通讯:各个字节一位一位传输包括 异步通信和同步通信同步通信:保持位同步也保持字符同步传输速率: 比特率:每秒钟传输二进制代码的位数 波特率:每秒钟调制信号变化的次数,每秒钟发送的位数在基带传输中,比特率和波特率相同异步通信:前有 起始位,后有 校验位,停止位工作方式寄存器SCONRI 接收中断标志位;接收结束时,会由硬件置1,向CPU发出中断请求;同时由软件fu...

2020-10-05 23:18:48 217

原创 键盘输入

一、独立键盘输入使用到C语言中的if语句,键盘输入检测方法,轮询法按键电路图(查找串口,命名)记得在头文件中,将各个引脚命名好P3引脚属于自己在头文件bstv51.h中进行位定义sbit k1=P3^4; sbit k2=P3^5; sbit k3=P3^6; sbit k4=P3^7;按键按下为低电平—0#include <reg52.h>#include"bstv51.h"void main(){ bstv51_init(); //开发板初始化函数

2020-10-04 23:12:57 1047

原创 C51单片机定时器

一、与以前的软件延迟做对比:软件延迟利用若干次空循环实现,占用CPU1、定时器的构成定时器:硬件 ;此件利用 T0定时器,可在四种模式下工作实质是加1计数器(16位计数器),由高8位TH0和低8位TL0两个寄存器组成,TMOD是工作方式寄存器,TCON是控制寄存器2、定时器溢出任何一个计数范围有限的系统,都存在溢出现象。系统可表达数的个数,称为模。溢出时,会导致定时器溢出中断请求(发出中断请求),与此时是否使能无关。但是有发生中断请求,不一定会被收到溢出=总数为1...

2020-10-02 14:50:32 3123

原创 中断系统

中断系统一、基本知识1、中断的意义—解决突发事件和多任务23、优点①分时操作:分时对多个外设进行服务②实时响应:通过硬件来实施中断的周期,准确③可靠性高:具有处理故障和掉电的突发事件的能力4一次完整步骤:1中断请求 2中断使能 3中断响应 4中断处理 5中断返回135是硬件在完成的2是软件完成,即在 寄存器上修改值响应中断时,中断标志都会被硬件清零5中断系统的硬件①外部中断②内部定时器③内部串行口6中断系统的流程:IE寄存器(各单路开关)–EA位(总开关)–

2020-10-01 15:41:43 667

原创 数码管的静态与动态显示

一,数码管的静态显示1.基本知识①共阳极数码管与共阴极数码管共阴极–输出低电平0,点亮共阳极–输出高电平点亮共有十个引脚,2个接地GND,②根据电路图看段选与位选P2^6是段选,控制那一个数字的具体显示,可根据字形表对应输出P2^7是位选,选择控制要哪一位亮灯③锁存芯片锁存芯片的作用:保存上一状态值先给他赋值1,【使能端为高】,让我们要显示的数值通过,再给他赋值0,【使能端为低】,就可以锁住数值2静态显示静态显示比较占I/O口#include<reg52.h>#

2020-09-27 16:23:25 1983 1

空空如也

空空如也

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

TA关注的人

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