自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

凡走过必留下痕迹

  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 软件判断从器件是否接入的一种技巧

在实际的工程项目中,有时候会碰到两款差异不大的产品,设计的时候共用一款PCB,软件也共用一套软件。这个时候,我们可以开辟一个IO口,用于侦测实际应用的是哪款产品。如上图所示,假如我们开发的是A和B两款产品,在A产品PCB中,R101空贴,那么IO口读取到的是高电平,那么可以通过IO口的读取状态(高)判断是A产品;在B产品PCB中,R16和R101都要贴,那么IO口读取的就是低电平,可以以此

2017-01-06 08:58:41 289

原创 嵌入式C(一)

1, 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?首先,函数调用会带来额外的开销,它需要开辟一片栈空间,记录返回地址,将形参压栈,从函数返回还要释放堆栈。 其次,函数的参数必须被声明为一种特定的类型,所以它只能在类型合适的表达式上使用,我们如果要比较两个浮点型的大小,就不得不再写一个专门针对浮点型的

2016-09-05 15:03:19 280

原创 编码查询工具(进阶)

块定义Option ExplicitType VMCode    prd_no As String    spc As String    ut As StringEnd TypeType VCode    prd_no As String    PRD_MARK As String    qty As Single    qty_on_way As S

2013-08-21 15:15:25 721

原创 网址管理系统

Dim x As IntegerPrivate Sub Command1_Click()Dim sc As IntegerIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then    MsgBox ("请输入完整的网站信息!")Else    sc = MsgBox("确实要添加这条记录吗?", vbOKC

2013-08-16 15:31:58 509

原创 webview

Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)Dim i As LongDim existed As BooleanIf KeyCode = 13 Then '回车键的ascii码    If Left(Combo1.Text, 7)     Combo1.Text = "http://" + C

2013-08-12 11:38:02 401

原创 VB多媒体

Option ExplicitDim cury, cury1, temp As Single, s1(1 To 3), s2(1 To 3) As StringPrivate Sub Form_Load()Dim diskpathname As String, X, Y As SingleMove 0, 0, Screen.Width, Screen.Height  '根据屏幕分辨

2013-07-27 11:40:18 433

原创 VB打字程序

Option ExplicitDim score As IntegerDim speed As IntegerSub init()Label1.Caption = Chr(Int(Rnd * 25) + 65) '大写英文字母speed = Int(Rnd * 50 + 50) '速度随机Label1.Left = Int(Rnd * Frame1.Width) '左侧位置

2013-07-25 14:39:28 817

原创 VB定时

Option ExplicitDim alarmtimePrivate Sub Command1_Click()Call dialogEnd SubPrivate Sub Command2_Click()alarmtime = InputBox("请输入想设定的时间,例如(19:00:00)", "小闹钟")If alarmtime = "" ThenEnd If

2013-07-24 10:38:48 1144

原创 VB初学

Option ExplicitPrivate Declare Function LCMapstring Lib "kernel32" Alias "LCMapStringA" (ByVal locale As Long, ByVal dwpflags As Long, ByVal lpsrcstr As String, ByVal cchsrc As Long, ByVal lpdeststr

2013-07-17 13:36:57 667

转载 嵌入式C的几个问题

1、 int a=2,b=11,c=a+b++/a++; 则c值为多少?【问题点】编码规范。表面上是考验你对运算符优先级的掌握程度,但实际上优先级这些玩意很难死记硬背。大家的疑惑不就是运算符的结合顺序么?那么如何去避免呢?c=a+((b++)/(a++))不就行了么,其实问题背后考察的是你的编码规范,如何写清晰易懂的代码,如何在一个团队中让自己的代码很容易毫无偏差的让新人看懂。2、 S

2012-10-31 16:43:04 1397

原创 嵌入式Linux网络编程

一、TCP/IP协议1、TCP/IP参考模型TCP/IP协议模型遵循简单明确的设计思路,包括以下四层协议:网络接口层:负责将二进制流转换为数据帧,并进行数据帧的发送和接受。数据帧是独立的网络信息传输单元。网络层:负责将数据帧封装成IP数据包,并运行必要的路由算法。传输层:负责端对端之间的通信会话连接与建立。传输协议的选择根据数据传输方式而定。应用层:负责应用程序的网络访问,通过端口

2012-09-29 15:20:14 1993

原创 初学多线程编程

一、线程概述进程是系统中程序执行和资源分配的基本单位,之所以有了进程还要引入线程有几个方面原因:1、和进程相比,线程是一种非常“节俭”的多任务操作方式。运行于一个进程中的多个线程,它们共用地址空间,而且线程彼此切换所需的时间远远小于进程间切换所需的时间。2、线程间方便的通信机制。对于进程来说,它们具有独立的数据空间,进行数据传递只能通过进程间通信方式进行。线程由于在同一进程下的线程之间

2012-09-19 16:54:59 353

原创 Linux下进程间通信(小结)下

四、共享内存共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。由于多个进程共享一段内存,因此也需要依靠某种同步机制。共享内存的实现分为两个步骤,第一步是创建共享内存,使用shmget(),也就是从内存中获得一段共享内存区域,第二步映射共享内存,也就是把这段内存映射到具体的

2012-08-28 14:11:42 377

原创 Linux下进程间通信(小结)上

之所以进程间需要通信,包括进行数据传输、资源共享、通知事件和进程控制等等。现在Linux使用的进程间通信方式包括:管道和有名管道信号消息队列共享内存信号量套接字一、管道1、这里主要指无名管道,具有如下特点:#、只能用于具有亲缘关系的进程之间通信。#、是一个半双工通信模式,具有固定的读写端,先进先出。#、可以看成是一种特殊的文件,可以使用普通的read()等函数,但是

2012-08-22 11:16:05 1174

原创 进程控制

1、进程是一个程序的一次执行过程,同时也是资源分配的最小单元,根据它的生命周期可分为三种状态:执行态、就绪态和等待态。Linux中的进程包含三个段:数据段、代码段和堆栈段。2、Linux进程控制编程@1、fork函数创建,在unistd.h库中定义,函数原型为pid_t fork(void)。fork函数调用一次却返回两次;在父进程中返回子进程的ID,在子进程中返回0,出错返回负值。For

2012-08-17 14:45:47 276

原创 linux中read函数需要注意的细节

在对read的使用过程中,发现其实对返回值的处理比较重要。read函数原型:ssize_t read(int fd,void *buf,size_t count)1、每次执行read函数前,指定好起始位置(否则经常出错),并且对buffer进行初始化2、对于一个数组,总是要自动分配一个'\0'作为结束符,实际有效的buffer长度只有buffer_size-1,有可能出现'\0'没有地

2012-08-16 13:57:45 1756 1

原创 argc与argv

main函数的完全格式是这样的: int  main ( int  argc, char *argv[ ] 或者char **argv, char *envp[ ] ) 下面详细介绍: argc是执行程序时的命令行参数个数。需要注意的是,程序本身的文件也算一个。比如你写了个程序叫test,若用下面的命令行启动: ./test   /p   /w 则argc的值为3。 arg

2012-08-15 15:54:22 510

原创 Linux下getch()使用的问题

getch不是标C的函数,建议使用getchar使用getch需注意以下问题:1、用gcc编译时候需要用-lcurses加进这个库,如:gcc test.c -o test -lcurses2、使用getch之前之后应分别加上initscr()初始化,结束加上endwin(),如下:initscr();  // initscr确定终端类型,并初始化数据结构,它调用refresh清屏

2012-08-13 11:40:39 1783

原创 使用iconv转换出现“非法输入序列”的问题

如题:我只选择最关键的语句:iconv -f gb18030 -t utf-8 $1 > $2这样会出现“未知xxx处的非法输入序列”,我想可能是有些汉字字符识别不出来于是,我把它改为iconv -c -f gb18030 -t utf-8 $1 > $2,多加了一个-c,忽略无效的字符发现转化过来基本正确(起码汉字的翻译全对了,也没有丢失数据),但是有个小地方出错了,如下图

2012-08-06 16:56:09 5933

isp下载软件

isp下载软件,支持加密,内含说明书,驱动文件,可以用

2013-08-22

嵌入式应用程序开发试验

嵌入式应用程序开发综合实验9例,可以作为参考学习

2012-10-12

空空如也

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

TA关注的人

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