自定义博客皮肤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)
  • 收藏
  • 关注

原创 GPIO基础知识及C基础知识

stm32

2023-02-06 22:55:52 610

原创 蓝桥杯--单片机--LED

正向普通流水灯:​void inittime1(){ TMOD=0x01;//0000 0001 TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1;}void t1() interrupt 3{ TH1=(65536-50000)/256; TL1=(65536-50000)%256; count++; if(count==10) { i++; count=0; } if(i=

2022-03-13 14:23:53 429

原创 2022--3---4踩坑日记

困扰我多天的AD采样有时候为0,有时候在64,128,196跳变,是因为原本的iic底层驱动函数,延时太小,pcf8591芯片运行速度过慢,导致精度不高,解决方法为:将原本的5nop改为25nop!!!!

2022-03-04 22:30:49 174

原创 蓝桥杯单片机进阶模块--NE555

在使用NE555模块时,NE555是不需要驱动程序的,NE555提供一个接口就是P3^4接口,当然这个接口不是默认连接的,需要将J3用跳线帽将P3^4和SIGNAL连接起来,我们可以看到P3^4是作为T0定时器、计数器的外部输入端口,那么NE555用于频率测量时候的思路就是将T0设在计数模式工作方式2自动重装下,用来接收SIGNAL给它的脉冲,然后T1设在定时模式下,定时1s,之后将1s中T0测得的脉冲数取出,通过数码管显示出来。单片机测量信号频率,并显示在数码管中,频率数据显示用5位数码...

2022-02-22 22:09:46 8958

原创 2022-2-22

烦!!!做了差不多两天的12届第二场功能还没有完全实现,但是看我的代码并找不到问题啊啊!现在就是1.NE555测频率周期时候只在刚刚上电时候有效;2.ADC模拟转数字测量通道1和通道3,不对。。。 3.s7长按键功能还没实现。。。...

2022-02-22 21:05:20 119

原创 蓝桥杯单片机进阶-- DS18B20温度传感器

DS18B20主要由三个数字部件构成,分别是64位激光ROM,温度传感器,非易失性温度报警触发器TH和TL。DS18B20是一个独立外设,与单片机之间进行的通信为单总线技术通信。DS18B20采用的单总线技术采用单条信号线,既可传输时钟,又可传输数据,而且数据传输是双向的。单总线适用于单主机系统,能够控制一个或多个从机设备。在我们控制DS18B20温度传感器的时候,首先对DS18B20进行初始化,然后对DS18B20进行读写操作。下面是控制DS18B20的指令:33H---读ROM; 55H

2022-02-22 19:24:24 1323

原创 蓝桥杯单片机组--第十二届省赛第一场

#include<reg52.h>#include"iic.h"#include"onewire.h"#include<intrins.h>#define uint unsigned int#define uchar unsigned charvoid read_temp();void display_temp();sfr P4=0xc0;//矩阵按键P4^4替换P3^7,P4^2替换P3^6sfr AUXR=0x80;//sbit...

2022-02-20 20:13:11 706

原创 蓝桥杯单片机进阶--PCF8591(模数转换芯片)

位置:电路:w 0 --从单片机给pcf8591传输数据开始->找0x90这块芯片--即pcf8591->pcf8591会产生一个应答,那么单片机就需要做等待应答操作->之后单片机发送控制字节告诉pcf8591芯片需要找哪个引脚->等待应答...

2022-02-18 23:25:23 3566 5

原创 指针提高题

2021-08-21 16:11:43 55

原创 指针常见题及解析

指针是C语言的中的精髓部分,在于他什么的地址都能指,所以说指针是十分重要的。在常见的一些考法中,指针经常会搭配到数组进行考察,虽然有些时候代码看着复杂,但我们只要抓住重点,就可以轻松解答。一.指针搭配一维数组及sizeof()操作符和strlen()函数1.#include<stdio.h>int main(){int a[]={1,2,3,4};printf("%d\n",sizeof(a));//16,数组名单独放在sizeof()内部,这时候的求的是整个数组的字节大小

2021-08-20 22:26:22 261 2

原创 深入了解回调函数

回调函数:顾名思义,是个函数,只不过这个函数是通过函数指针调用的函数,而不是由该函数的实现方直接调用的。如果把函数的指针(地址)作为参数传给另一个函数,当这个函数指针在另一个函数里面被调用时候,我们就称这个被调用的函数为回调函数,这种机制叫做回调函数机制。这段话有一点绕,下面一张图可以搞清楚这个逻辑我们可以看到在主函数中我们实现了回调函数里面的功能,但却没有直接调用它,而是将它的地址给另一个函数,在另一个函数里面调用它,最终达到在主函数里面实现的效果。这样可以让回调函数在特定的场景下(即另一个.

2021-08-18 21:28:29 540

原创 进阶指针--c语言

我们之前已经对指针已经有了一些了解,知道指针就是一个用来存放地址的变量;指针的大小在32位平台下是固定的4个字节,在64位平台下是固定的8个字节;指针的类型决定了指针解引用可以操作的字节数和指针+-整数的步长。这篇博客给大家深入剖析指针的各种类型,让大家对指针有更深的一个认识。1.字符指针2.数组指针3.指针数组4.数组传参和指针传参5.函数指针6.函数指针数组7.指向函数指针数组的指针1.字符指针:顾名思义,字符指针就是用来存放字符串的指针。但是我们要注意字符指针里

2021-08-18 15:01:06 111

原创 剖析数据在内存中的存储--C语言

在c语言中类型可以分为:1.内置类型(char,short,int,long,longlong,float,double);2.自定义类型3.指针类型;4.空类型类型的意义是:1.所创建的空间的大小;2.如何看待内存空间的视角一.内置类型:1.整型家族:char:(unsigned char,signed char)---因为char类型在内存中的存储的是所对应字符的ASICC码值;short(signed short,unsigned short);int(signed int,u

2021-08-15 10:37:39 79

原创 初始结构体

结构体是一些值的集合,这些值就是成员变量,每个成员变量可以是不同的类型,当然也可以是结构体类型。结构体的声明:struct stu{ //struct ---结构体关键字;stu---结构体标签;struct stu---结构体类型char name[20];short age;char tale[12];//成员变量char sz[5];}s1,s2,s3;//s1,s2,s3是全局结构体变量int main(){struct stu s;//是局部结构体变量return 0;

2021-08-13 22:11:43 74

原创 一些例题8 13

sizeof()的特性:#include<stdio.h>int i;//全局变量,未初始化默认为0int main(){i--;//-1if(i>sizeof(i)){printf(">\n");else{printf("<\n");}return 0;}//最后结果是>:因为sizeof()打印出来的是一个无符号数,所以再i和sizeof(i)进行比较的时候,会将i处理为无符号数,即一个特别大的整数逗号表达式的优先级最低:#incl

2021-08-13 14:40:05 72

原创 初识指针8 12

指针:在计算机科学中,指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储中的另一个地方的值。由于通过地址能够找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为指针。意思是通过它能够找到以它为地址的内存的单元。指针是个变量,存放内存单元的地址(编号),存放在指针变量的值,都被当做地址处理。一个小的单元是一个字节,编号是由电信号转换而来,32位机器32根地址线,指针大小在32位平台上4个字节,在64位平台上8个字节。指针和指针类型:指针类型决定了指针进行解引用

2021-08-12 15:29:20 83

原创 C语言操作符

c语言操作符分为:算术操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用. ,函数调用,结构成员一.算术操作符 (+,-,*, /, %)/ 两边如果都是整数 ,想要得到一个小数的话,至少要有一个是小数;%两边必须都是整数1.除了%操作符以外,其他的几个操作符都可以作用于整数和浮点数;2.对于/操作符如果两个操作数都为整数,执行整数除法,而只要有浮点数执行的就是浮点数除法;3.%操作符的两个操作数必须是整数,返回...

2021-08-11 15:09:20 63

原创 2021 8月10日

1.交换两个变量,要求不能使用第三方变量。异或运算符#include<stdio.h>int main(){int a=3;int b=5;printf("交换前a=%d b=%d\n",a,b);a=a^b;b=a^ba=a^b;printf("交换后 a=%d b=%d",a,b);return 0;}2.找出只出现一次的数,给定一个非空整型数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出那个只出现了一次的元素。样例:a[]={1,2,3

2021-08-10 10:36:29 65

原创 C语言数组 --笔记

数组创建[]里面要给常量才可以,不能使用变量。int arr[10]={1,2,3};//存放十个整型数组分别是1 2 3 0 0 0 0 0 0 0char arr2[5]={'a',98};//存放5个字符常量 'a' 'b' '\0'...char arr3[5]="ab";//存放5个字符常量'a' 'b''\0'...char aarr4[]="abcdef";//存放'a' 'b' 'c' 'd' 'e' 'f' '\0'很多人可能搞不清楚一个东西,下面我们来看sizeof()

2021-08-09 12:51:39 95

原创 递归经典问题--汉诺塔问题.青蛙跳台阶问题

在上一篇文章里面我们已经介绍了什么是递归,也举了一些例子,那这次我们要研究的就是递归的经典问题第一个就是古老的汉诺塔问题:问题是这样的,现在有A,B,C三座塔,然后A上面有n个盘子,盘子是由小到大从上到下依次排列的,我们现在想要把A座上面的盘子全部移到C座上面去,要求是每次只能移动一个盘子,并且在移动的过程中大盘始终要在下,问需要移动的步骤是什么?首先我们来分析一下:如果A上面只有一个盘子的话,直接执行A->C是不是就完成了,那么我们来看当A上面是n个盘的时候呢?我们可以把它分为n-1个盘和1

2021-08-08 13:36:32 135

原创 c语言函数与递归及其经典问题

首先我们要明确声明是函数的递归:函数递归就是指一个函数直接或简介调用自身的方法,递归的主要思考方式在于把大事化小。下面我们直接上代码写一个最简单的递归了解一下把:#include<stdio.h>int main(){printf("hehe\n");main();return 0;}这个代码运行结果是一直打印hehe,但是也不是无限循环下去的,因为系统的内存空间是有限的。这个代码犯了一个递归典型错误,那就是stack overflow栈溢出,因为这个代码没有设置递归终止条

2021-08-07 22:27:06 355

原创 c语言函数

首先我们要知道什么是函数,有一个定义是能完成模块化的功能的作用叫做函数。在C语言中常见的函数有io输入输出函数,字符操作函数,字符串操作函数,时间/日期函数,数学函数,其他库函数等等。在这里推荐一个网站叫做ccplus.com在里面我们可以找到C语言所有的库函数,并且含有使用方法和简介,大家要试着会读这些网站里面的函数。下面我给大家介绍几个库函数:1.strcpy()---string copy 函数,即字符串拷贝函数,它包含在string.h>头文件,我们在ccplus网站可以看到他是.

2021-08-06 22:43:31 113

原创 一些简单数学问题

1.打印乘法口诀表两个for循环嵌套使用代码参考:#include<stdio.h>int main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++){printf("%d*%d=%d\t",j,i,i*j);}printf("\n");}return 0;}2.打印素数试除法:#include<stdio.h>#include<math.h>int main(){int

2021-08-05 22:08:26 64

原创 c语言的一些小程序

1.猜数字的小游戏首先我们要用c实现一个猜数字的小游戏的话,需要1.让电脑产生一个随机的数字以供我们猜测;2.其次的话就是我们进行猜数字,如果我们猜的数字和电脑随机生成的数字一样的话那么就成功了。那第一个如何让电脑产生一个随机的数字呢?这里需要用到rand函数和srand函数搭配使用:rand函数在产生随机数前,需要系统提供的生成随机数序列的种子,rand函数根据这个种子产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned

2021-08-05 21:34:43 716

原创 蓝桥杯基础题C语言实现

1.十进制转十六进制资源限制:1.0s 内存限制:512.0MB问题描述:十六进制是在程序设计经常要使用到的一种整数的表示方式。给出一个非负整数,将它表示成十六进制的形式。输入格式:输入一个非负整数,表示要转换的数。0<=a<=2147483647。输出格式:输出这个整数的十六进制表示。样例输入:30样例输出:1E代码参考1:(注意输出的是大写字母所以X要大写)#include<stdio.h>int main(){long long a;.

2021-08-04 20:55:50 324 1

原创 蓝桥杯基础练习题

1.数列特征问题描述:给出n个数,给出这n个数的最大值,最小值,和。输入格式:第一行为整数n,表示数的个数。第二行有n个数,为给定的n的个数,每个数的绝对值都小于10000.输出格式:输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。样例输入:51 3 -2 4 5样例输出:5-211数据规模与约定:1<=n<=10000.代码参考:(注意单独判断当i等于0的时候)#include<s

2021-08-03 22:05:50 227

原创 蓝桥杯练习题基础题

1.闰年判断:题目:给定一个年份,判断这一年是不是闰年。当一下情况之一满足时,这一年是闰年:1.年份是的倍数而不是100的倍数;2.年份是400的倍数。输入格式:输入包含一个整数y,表示当年的年份。输出格式:输出一行,如果给定的年份是闰年,则输出yes,否则输出no。说明:当试题指定你输出一个字符串作为结果时,注意大小写。样例输入:2013样例输出:no样例输入:2016样例输出:yes数据规模与约定1990<=y<=2050.代码参考:#inc

2021-08-02 22:15:44 210

原创 蓝桥杯入门练习题(1-4)

1.A+B问题。问题描述:输入A,B然后输出A+B.(说明:在问题描述部分,会给出试题的意思,以及所要求的目标。)输入格式:输入的第一行包括两个整数,由空格分隔,分别表示A和B。(说明:输入格式时描述在测试你的程序时,所给的输入一定满足的格式。做题时你应该假设所给的输入时一定满足输入格式的要求的,所以你不需要对输入的格式进行检查。多余的格式检查可能会适得其反,使你的程序错误。在测试的时候,系统会自动将输入数据输入到你的程序中,你不能给任何提示。比如,你在输入的时候提示“请输入A,B:之类的话时不需要

2021-08-02 17:09:08 95

原创 初识c语言之结构体

在说结构体之前我们首先复习一下指针,int =10; int *p=&a;这里面的p是便是一个指针变量,而int*表示这个指针变量也就是p的类型,int*我们也可以分开看,其中的

2021-06-16 16:12:59 92

原创 c语言养成记 day2

初识c语言首先我们分清楚一下’0‘,’\0‘,0三者的区别,第一个是字符0其ASC码值对应48,第二个是字符串jie's

2021-06-15 18:51:36 96

原创 C语言学习养成记

初识c语言(2)常量1.字面常量:即常见的各种像数字啊这些一系列不变的2.const修饰的常变量:例如 const int nu'm

2021-06-14 15:59:56 134 3

空空如也

空空如也

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

TA关注的人

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