-
标准的 51 单片机内部有 T0 和 T1 这两个定时器,T 就是 Timer 的缩写,现在很多 51 系列单片机还会增加额外的定时器,在这里我们先讲定时器 0 和 1。前边提...
-
上一个例程中在进行函数调用的时候,不需要任何参数传递,所以函数定义和调用时括号内都是空的,但是更多的时候我们需要在主调函数和被调用函数之间传递参数。在调用一个有参数的函数时,函...
-
与单片机寄存器的用法类似,1602 液晶在使用的时候,我们首先要进行初始的功能配置,1602 液晶有以下几个指令需要了解。
1) 显示模式设置
写指令 ...
-
DS1302 是个实时时钟芯片,我们可以用单片机写入时间或者读取当前的时间数据,下面带着大家通过阅读这个芯片的数据手册来学习和掌握这个器件。
由于 IT 技术...
-
RS232 标准是诞生于 RS485 之前的,但是 RS232 有几处不足的地方:
1. 接口的信号电平值较高,达到十几 V,使用不当容易损坏接口芯片,电平标...
-
我们前边学习 UART、I2C、SPI 这些通信协议,都是最底层的协议,是“位”级别的协议。而我们在学习 13 章做实用串口通信程序的时候,我们通过串口...
-
基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。
结构体定义:...
-
面向入门学者,以ANSI C为标准,以Visual C++ 6.0为编译工具,从实战的角度讲解C语言,力求让大家达到中级编程水...
-
结构化程序设计主张按功能来分析需求,主要原则自顶向下,逐步求精,模块化等。
主张按功能把软件系统逐步细分,每个功能都负责对数据进行一次处理,每个功能接收一些数据,处理完后输出一些...
-
真有机器用非零空指针?或者不同类型用不同的表达?
至少PL/I, Prime 50 系列用段07777, 偏移0 作为空指针。
后来的型号使用段0, 偏移0 作为C 的空指针,...
-
问题:
为什么有些代码小心地把malloc 返回的值转换为分配的指针类型。在ANSI/ISO 标准C 引入void * 一般指针类型之前,
这种类型转换通常用于在不兼容指针类型...
-
一台合理的电脑应该可以让你透明地访问所有的有效内存。
如果, 你很不幸, 你可能需要重新考虑程序使用内存的方式, 或者用各种针对系统的技巧。
64K 仍然是一块相当大的内存。
...
-
“不能使用非标准、依赖系统的函数,程序需要兼容ANSI!”
你很不走运。
要么你误解了要求, 要么这不可能做到。
ANSI...
-
首先, 尽管一个全局变量或函数可以(在多个编译单元中) 有多处“声明”, 但是“定义” 却只能允许出现一次。
定义是分配空间并赋初...
-
1 union巧妙地实现多字节数据类型之间的转化
在涉及音视频编解码算法中,经常会涉及一些数据压缩、声音解码、图象的缩放等问题。
这里通...
-
我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的:
int printf( const char* format, .....
-
我相信,使用C/C++多年的人对下面这个字符串赋值语句都不会陌生吧。
char* p = "test";
同时,我也相信,各位在使用这种语句后吃...
-
C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高...
-
一、点阵文件生成
1、使用点阵字库生成器生成文字的点阵信息,采用 UNICODE 编码批量生成。
2、如果具有 C 文件的字库,例如 STM32 开...
-
步进电机和交流伺服电机性能比较
步进电机是一种离散运动的装置,它和现代数字控制技术有着本质的联系。在目前国内的数字控制系统中,步进电机的应用十分广泛。随着全数字式交流伺服系统的出...