- 博客(9)
- 收藏
- 关注
原创 C语言开发之数组与指针
假设程序运行后,系统为变量a分配内存后,变量a得到的地址编号恰好是0x12345672,而系统也会为变量p分配内存,变量p得到的地址编号恰好是0x12345677。除了常见的数组,我们还需要另一种比较特殊数组------字符数组。注意:指针还有偏移量的问题需要解决,指针的偏移量与指针指向的类型有关。指针类型的大小是固定的且与系统字长有关(32位系统----4字节,64位系统----8字节)那接下来,我们再来了解另一种特殊的类型----指针。大小为20字节的内存空间------大小的计算方式。
2025-09-16 21:23:59
422
原创 C语言开发之控制流
现在我们来到了控制流中的循环结构-------共有for结构,while结构,do-while结构三种。唯一的不同就是-------do--while结构是先执行循环体再判断循环条件 ,而while结构先判断循环条件再执行循环体的语句。如果你的判断条件增多,且还沿用上面代码的if----else结构则会让你的代码显得很冗余,所以C语言还使用了另外一种写法。选择结构一共有两种switch--case分支,if--else分支。C语言的控制流一共有2种--------选择结构和循环结构。)应该要有一个数值了。
2025-09-15 14:42:05
1184
原创 C语言开发之变量内存空间(续基本数据类型)
那个时候的 Unix 是用汇编语言写的,移植性非常差,要想让 Unix 运行在不同型号的机器上,就得针对每个型号的机器重写一遍操作系统,这显然是一个不可能完成的任务。1995 年C程序设计语言工作组对C语言进行了一些修改,增加了新的关键字,编写了新的库,取消了原有的限制,并于 1999 年形成新的标准——ISO/IEC 9899:1999 标准,通常被成为 C99。(这里以整型为例)答案:正数是以二进制原码的形式存储,而负数是以二进制补码的形式存储。注意:负数的补码在取反加一的时候,符号位是不动的。
2025-09-12 21:18:18
1428
原创 单片机开发之基础按键操作
在这段代码中从按下按键开始到处于按下状态稳定这个过程是有抖动现象的(也就是说在这个过程中这个按键经历了多次的按下与非按下状态(ms甚至是us级别的切换速度),虽然单片机能检测到这种变化,但我们肉眼无法在极短时间内观察到灯的亮灭状态)。(所谓的按下一次操作就包括了按下和松开的行为而这时候我们就需要采取一些消抖措施)注意:消抖方式有硬件消抖和软件消抖,而软件消抖分为延时消抖和状态机消抖。但与控制灯的亮灭和控制蜂鸣器不同的是连接按键电路的引脚要配置为输入功能,因为单片机仅靠电平的高低无法控制按键按下或放开。
2025-09-12 09:35:19
161
原创 C语言开发之基本类型及其基本运算
但是,在C语言中数据的运算要复杂得多。逻辑运算的结果也只有“真”和“假”,“真”对应的值为 1,“假”对应的值为 0。正如a+a,我们知道+是加号,而在C语言中我们更愿意称它为运算符而且还是算术运算符,以下是常见的算术运算符。,大家在某个编译上开发项目时,建议选择打印系统数据类型长度(可使用sizeof计算出数据类型的大小)。我们程序员可以通过()的方式解决优先级问题,在一个表达式中,往往最先执行()内的内容。据类型的长度在不同的系统或者编译器下,长度不同,特别是int(2/4) long(4/8)类型。
2025-09-11 21:36:51
161
原创 每日一道简单C语言编程题
以上两道题适用于刚接触字符指针和字符数组的C语言初学者。题目:尝试删除数组中特定位置的字符(题目:尝试删除数组中特定的字符。此处的数组特指字符数组。
2025-09-10 20:50:16
214
原创 单片机开发之蜂鸣器
因为单片机引脚输出的电流很小,无法直接利用输出的电流去驱动蜂鸣器,所以我们需要用到三极管的放大电流的作用。当施加在发射结的电压大于压降时,发射区的大量电子会大量涌向集电区,所以经过蜂鸣器中的电流要比引脚输出的电流大得多,且在一定范围内,发射结的电压越大则经过蜂鸣器中的电流就越大。通过上图,我们发现想要使用GPIO,只需要两步-------(1)GPIO时钟使能,(2)GPIO初始化。且根据前面的NPN型三极管的特性可知,想要让蜂鸣器响起来需要控制PF8输出高电平(此处我们使用标准库方式实现)。
2025-09-09 19:43:43
367
原创 单片机开发之寄存器点灯
我们知道单片机中使用的是TTL电平,在TTL电平标准中使用的是正逻辑,简单理解———可以用逻辑1表示5V电压,逻辑0表示0v。如果该寄存器表示的是PA,则基地址为0x4002 0000,如果表示PB,则基地址为0x4002 0400,以此类推。),这两位数据表示的是端口6,而这个端口6可以是PA6,也可以是PB6,PC6,PD6,PE6,PF6,PG6设置为。而它究竟表示哪一个取决于该寄存器的地址(该地址=基地址+偏移地址,而该寄存器的偏移地址为0x00)。6.最后一个寄存器(涉及到GPIO口的使能)
2025-09-08 18:02:21
519
原创 单片机开发之Keil软件的使用
但最好还是改,因为到后面随着工程的复杂化,我们将某个复杂的模块放在一个文件夹中编译,而通过文件夹的名字我们可以轻易知道该文件夹中的源文件主要实现什么功能)(注意:该文件夹的源文件就是本工程要编译的源文件),而我新建了一个文件夹名为MYCODE。4.在MYCODE文件夹中创建.c和对应的.h文件(直接在Windows的文件系统中创建即可)如图所示。3.添加要编译的源文件(因为这是新的工程,所以我们的MYCODE文件夹是什么都没有的)。(1)先从官网下载一个keil软件,安装完软件后出现如图的图标。
2025-09-06 18:30:01
1104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅