
技术频道
suyong_yq
屌丝程序员:喜欢乒乓球,喜欢听歌,喜欢写程序,喜欢吃零食,喜欢睡觉。
展开
-
I2C收发引擎及从机软件的实现原理分析
I2C通信协议的本质其实就是基本的帧通信.之后附加了一些基本功能. 所有的同步通信都需要一根同步信号线/时钟线, 和若干根数据线. 发送方在同步信号线的无效状态下准备好新的数据放到数据线上, 在进入有效状态后保持数据不变, 接收方在同步信号线的有效状态下读取数据. 抛开数据的具体内容不谈, 一个基本的帧通信包括: 开始信号(START) + 通信数据流 + 帧结束信号(STOP). I2C使用SCL高电平下SDA的下降沿表示开始信号, 而不需要浪费一个专用字符来表示开始. 同样, 使用SDA原创 2020-07-31 13:39:19 · 491 阅读 · 0 评论 -
一个求全排列的算法
全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为例说明如何编写全排列的递归算法。1、首先看最后两个数:4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列和以5开头的4的全排列。由于一个数的全排列就是其本身,从而得到以上结果。2、再看后三个数3, 4, 5。它们的全排列为3 4 5、3 5 4、 4 3 5、 4 5 3转载 2009-06-01 18:31:00 · 1229 阅读 · 0 评论 -
编写程序过程中命名方法的参考——Java命名规范
定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性。 包的命名 (全部小写,由域名定义) Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于转载 2009-06-05 20:42:00 · 3058 阅读 · 2 评论 -
Red Hat Enterprise Linux AS 5 下载及序列号
红帽子企业版Linux 5安装序列号Server:* Red Hat Enterprise Linux (Server including virtualization):2515dd4e215225dd+ Red Hat Enterprise Linux Virtualization Platform:49af89414d147589 Client:* Red Hat Enterprise Li原创 2009-06-13 19:01:00 · 1989 阅读 · 0 评论 -
C语言结构体存储及对齐
C语言中结构体对齐的规则基本规则规则1:结构体的数据成员中,第一个成员的Offset为0;规则2:结构体的数据成员中,每个成员的Offset为本成员大小的整数倍;规则3:若结构体A作为另一个结构体B的数据成员,则结构体A作为一个整体参与规则1和规则2;规则4:结构体的总大小(sizeof)不是简单的所有成员大小的总和,为该结构体内部最大成员数据类型的整数倍,单个成员大小不够的参原创 2013-11-01 15:34:29 · 800 阅读 · 0 评论 -
记录零星的思想,不再为遗忘而纠结
最近自己在搞一个软件项目,关于MCU驱动程序API的设计,纯粹是自己写着玩的。搞这个项目最初的出发点还是学习,想从零开始独自完成整个项目,从专业程序员的角度,原原本本地经历一个软件研发的全部内容。关于这个项目内容的想法其实很早就有了,所以一条一条的思路也比较多,但是都存在于脑袋里,没有形成文档。虽说是这个项目没有什么来自外部的压力,但自己总是希望尽快完成,但把这些零星的思想整理成调理的文档也不是容原创 2014-02-09 00:00:32 · 723 阅读 · 0 评论 -
C中的几个预编译指令
C中的几个预编译指令预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。预编译指令后面的内容不参与代码的编译。 在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预转载 2015-03-14 00:04:17 · 597 阅读 · 0 评论