自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr·潘

重要的是什么?不是使用什么语言、什么工具而是什么思想

  • 博客(62)
  • 资源 (25)
  • 收藏
  • 关注

原创 QTableWidget设置内容居中

QTableWidget设置内容居中

2023-10-12 16:11:49 787

转载 [openwrt] 使用ubus实现进程通信

ubus为openwrt平台开发中的进程间通信提供了一个通用的框架。它让进程间通信的实现变得非常简单,并且ubus具有很强的可移植性,可以很方便的移植到其他linux平台上使用。本文描述了ubus的实现原理和整体框架。ubus源码可通过git库 git://nbd.name/luci2/ubus.git 获得,其依赖的ubox库的git库:git://nbd.name/luci2/ubox.git...

2018-04-12 08:29:38 455

原创 IO口模拟SPI总线

SPI是一种全双工同步串行接口,四总线结构SCK、MOSI、MISO、CS分别是时钟、主机输出、主机接收、片选。其中各个厂商的写法可能不一致。SPI总线有四种工作模式,在不再做介绍。最常用的SPI总线时序CS为低时SCK上冲沿数据有效,数据从MISO、MOSI输入和输出。我们只要有这个概念就行,具体时序可以直接看芯片手册。很多芯片都集成了SPI总线接口,没有SPI接口的芯片同样可以用IO口模拟其时

2013-10-13 23:18:50 4783 1

原创 基于mini2440的看门狗(裸机)

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗",s3c2440中也集成了看门狗,在受到干扰或者系统错误时是芯片复位。

2013-09-15 20:21:12 1158 1

原创 基于mini2440的RTC读写(裸机)

很多处理器都有RTC实时时钟功能,s3c2440也提供了这个功能,其功能主要是:实时时钟、闹钟、tick中断等。RTC的操作比较简单。读写时RTCCON最低位应设置为1,不读写时设置为0以免误修改RTC相应寄存器。BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON,BCDYEAR可以设置和读取RTC的值,在编程中需要注意一秒只差的问题(具体可查看芯片手册),

2013-09-08 14:12:12 1244

原创 基于mini2440的IIC读写(裸机)

在mini2440开发板提供的源代码中IIC操作的源代码写的比较乱,在此根据数据手册和芯片手册,直观的编写代码,有中断模式和轮询模式,两种模式的操作方式相差不大。

2013-08-25 21:43:25 1543 2

原创 基于mini2440的ADC操作(裸机)

ADC转换器在s3c2440有集成,我在闲暇之余写的代码,有普通的轮询模式和中断模式,很多人疑问在芯片手册中只有触摸屏中断但没有说明ADC中断的相关设置位,其实是ADC中断是在转换完成了才产生中断,并不是中断了才开始转换,只要允许了ADC中断在转换完成了产生中断,这点需要区分。在完成中断后需要清除相关的标志位等待下一次中断。值得注意的是在使用中断之前需要重新映射中断地址才能使用即先调用MMU_

2013-08-09 22:44:07 790

转载 元件keepout层与覆铜间距

事情是这样,画了个板子,有个液晶模块LM3037,液晶模块安装在PCB板上,通过5mm的支撑柱支撑液晶模块,封装如下4边半径为1.5mm keep-out layer 上的是要在PCB上打孔的,一般这个软件多是默认keep-out层是板框层,板厂也是怎么做的。这里打孔还要用5mm的柱子支撑液晶模块LM3037另外在板子的背面拧螺丝。板子背面基本多是覆铜,拧螺丝的地方的覆铜间

2013-01-03 22:08:40 4404

转载 市场上常见电阻阻值表

市场上常见电阻阻值表 精度为5%的碳膜电阻,以欧姆为单位的标称值: 1.0    5.6     33      160     820       3.9K      20K     100K      510K      2.7M1.1    6.2     36      180     910       4.3K      22K     110K      56

2013-01-03 21:50:09 7259

原创 电阻的相关知识

电容的型号命名:1.各国电容器的型号命名很不统一,国产电容器的命名由四部分组成:第一部分:用字母表示名称,电容器为C。第二部分:用字母表示材料。第三部分:用数字表示分类。第四部分:用数字表示序号。2.电容的标志方法:(1)直标法:用字母和数字把型号、规格直接标在外壳上。(2)文字符号法:用数字、文字符号有规律的组合来表示容量。文字符号表示其电容量的单位:P、N、u、

2013-01-03 21:44:17 509

转载 大电容滤低频,小电容滤高频?—滤波电容的选择

一直有个疑惑:电容感抗是1/jwc,大电容c大,高频时w也大,阻抗应该很小,不是更适合滤除高频信号?然而事实却是:大电容滤除低频信号。解答如下:一般的10pF左右的电容用来滤除高频的干扰信号,0.1uF左右的用来滤除低频的纹波干扰,还可以起到稳压的作用。滤波电容具体选择什么容值要取决于你PCB上主要的工作频率和可能对系统造成影响的谐波频率,可以查一下相关厂商的电容资料或者参考厂商提供的资料

2013-01-03 20:23:31 1184

转载 板层定义介绍

顶层信号层(Top Layer):也称元件层,主要用来放置元器件,对于比层板和多层板可以用来布线;中间信号层(Mid Layer):最多可有30层,在多层板中用于布信号线.底层信号层(Bootom Layer):也称焊接层,主要用于布线及焊接,有时也可放置元器件.顶部丝印层(Top Overlayer):用于标注元器件的投影轮廓、元器件的标号、标称值或型号及各种注释字符。底部丝印层

2013-01-03 20:11:48 538

转载 如何在Altium Designer中实现两片DDR等长走线

如图所示,以ARM,DSP等SOC为核心的电子系统中,经常存在两片或者以上的DDR/DDRII SDRAM。考虑到DDR/DDRII SDRAM的运行频率一般都比较高,在做PCB layout的时候需要等长布线来保证DDR/DDRII SDRAM的读写时序。对于包含两片及以上DDR/DDRII SDRAM的系统,这里要求的等长布线有两层含义。拿ADDRESS信号来讲,第一层含义要求从SOC的某一个

2013-01-03 19:53:29 2778

原创 C语言实现bool型

bool取值false和true,是0和1的区别,,false可以代表0,但true有很多种.并非只有1。bool是在C++中的定义类型,我们如何在C中实现bool型的数据呢?我们可以利用枚举型的定义来实现,枚举型是定义常量的一种方式,默认从0一次递增,也可以自行定义,未定义的部分递增。#include #include typedef enum {false = 0, t

2012-12-14 12:21:28 1259

原创 基于51单片机的花样流水灯仿真(代码)

《单片机C语言程序设计实训100例基于8051+Proteus仿真》的例子:#include #define uchar unsigned char #define uint unsigned int uchar code Pattern_P0[]= { 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff

2012-11-28 18:51:59 6055 1

原创 基于mini2440简单计算器的实现(裸机代码)

基于mini2440简易计算器使用的是数组实现,并非逆波兰式,因此功能不够强大,仅供驱动学习,以及C语言基础编程学习之用.有时间读者可以用逆波兰式来实现强大功能计算器,原理也很简单,建议读《c程序设计第二版》里面有算法的代码.读者自行研究.此程序基于电子相册的改进,触摸屏,LCD,字符现实,数字输入等等.主函数部分:#include "def.h"#include "option.h

2012-11-28 11:55:30 999 1

原创 基于mini2440触摸屏版电子相册(裸机代码)

主函数:#include "def.h"#include "option.h"#include "2440addr.h"#include "profile.h"#define LED1_on rGPBDAT = ((0xf<<5)^(1<<5)) //GPB5=0#define LED4_on rGPBDAT = ((0xf<<5)^(1<<8)) //GPB8=0

2012-11-27 12:12:06 1853

原创 基于mini2440按键控制电子相册(裸机代码)

#define GLOBAL_CLK 1#include "def.h"#include "option.h"#include "2440addr.h"#include "profile.h"#define LCD_WIDTH 320 //屏幕宽度#define LCD_HEIGHT 240 //屏幕高度#define CLKVAL 4 //时钟信号//垂直同步信号的脉宽、

2012-11-27 11:55:52 1281

原创 基于mini2440轮询控制LED(裸机代码)

#define GLOBAL_CLK #include "def.h"#include "option.h"#include "2440addr.h" #include "2440lib.h"#include "2440slib.h" #define LED1_on rGPBDAT = ((0xf<<5)^(1<<5)) //GPB5=0#define LED2_

2012-11-27 11:53:05 536

原创 基于mini2440流水灯(裸机代码)

#include "def.h"#include "option.h"#include "2440addr.h" #include "2440lib.h"#include "2440slib.h" int System_init(void);void rDelay(unsigned int x );int Main() //主函数 { Syst

2012-11-27 11:51:32 769

原创 基于mini2440的按键中断控制LED(裸机代码)

#define GLOBAL_CLK //相当于定义了FCLK,HCLK,PCLK,UCLK#include "def.h"#include "option.h"#include "mmu.h"#include "2440addr.h"#define LED1_on rGPBDAT = ((0xf<<5)^(1<<5)) //GPB5=0#define LED2_on

2012-11-27 11:45:40 716

原创 c8051单片机和AT24c1024B的通信(IIC协议)代码

利用51单片机的I/O口来模拟IIC协议,加深对其时序的理解,其次学习AT24c1024b的读写方法.已经通过运行代码如下:#include #include//包含_nop_()函数#define CTL_R 0xa1//AT24读控制#define CTL_W 0xa0//AT24写控制sbit SCL=P1^6;sbit SDA=P1^7;void Delay(i

2012-11-17 12:16:57 3044 2

转载 SPI总线协议

SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。      假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。      那么第一个上升沿来的时候 数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这

2012-11-16 18:08:53 449

转载 Proteus ISIS与Keil uVersion开发环境的互连

Proteus ISIS与Keil uVersion开发环境的互连  【一】简介  Proteus ISIS 6 Professional是一个强大的电路仿真(VSM,Virtual System Modelling )系统,不但可以支持SPICE电路仿真,而且可以支持8051系列、PIC系列、MC68HC11等MCU的仿真,其最新的6.8SP1版本甚至可以支持ARM的仿真。你可以通过

2012-11-15 19:14:11 2692

转载 堆栈,堆栈,堆和栈的区别

堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态

2012-11-12 13:56:22 699

转载 linux fork函数与vfork函数

一、fork1. 调用方法#include #include pid_t fork(void);正确返回:在父进程中返回子进程的进程号,在子进程中返回0错误返回:-1     子进程是父进程的一个拷贝。即,子进程从父进程得到了数据段和堆栈段的拷贝,这些需要分配新的内存;而对于只读的代码段,通常使用共享内存的方式访问。fork返回后,子进程和父进程都从调用fork

2012-11-12 13:49:49 285

转载 拓扑排序

一、概述  对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若 ∈E(G),则u在线性序列中出现在v之前。    通常,这样的线性序列称为满足拓扑次序(TopoiSicai Order)的序列,简称拓扑序列。注意:    ①若将图中顶点按拓扑次序排成一行,则图中所有的有向边均

2012-11-12 13:32:38 432

原创 c语言单链表的基本操作(代码)

c语言实现单链表的基本操作:建立、打印、删除、插入、逆序。仅供学习之用还需不断完善,有待读者自己研究#include #include typedef struct stu{ int data; //数据 struct stu *next; //指向下一节点的指针}node;node *creat(int n)//创建链表{ node *head,*p1,*p2;

2012-11-12 13:24:49 4403 1

转载 实现字符串的语序翻转

如输入为“abc”输出为"cba"[cpp] view plaincopy//vs2005  #include "stdafx.h"  #include   #include   #include   using namespace std;    void reverse(char *str)  {

2012-11-12 13:04:49 429 1

转载 如何添加或删除ubuntu用户和组

在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。创建用户user1的时候指定其所属工作组users,例:useradd –g users user1一、创建用户:1、使用命令 useradd例:useradd user1——创建用户user1    useradd –e 12/30/2009 use

2012-11-12 13:03:59 471

转载 fork与vfork的区别

fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性,但是二者之间的通讯需要通过专门的通讯机制,如:pipe,popen&pclose、协同进程、fifo,System V IPC(消息队列、信号量和共享内存)机制等, 另外通过fork创建子进程系统开销很大,需要将上面描述的每种资源都复制一个副本。这样看来,fork是一个开销十分大的系统调用,这些

2012-11-12 12:57:55 340

转载 Linux 设备驱动 ====> 字符驱动

开始从头学起linux 设备驱动,当然是先从字符驱动看起。下面仿照着书上的例子,写了一个misc 字符驱动。[cpp] view plaincopyroot@jay-LJ:/home/jay/globalmem# tree globalmem/  globalmem/  ├── globalmem.c  └── Makef

2012-11-12 12:53:22 280

转载 Linux 设备驱动 ====> 并发控制 --- 原子操作

原子操作原子的操作指的就是在执行过程中不会被别的代码所中断的操作。在Linux中原子操作的方法有很多,有整型原子和位原子,他们在任何情况下操作都是原子的,这些原子操作的实现都是依赖CPU来实现的,因此这些函数都与CPU架构密切相关。整型原子我们arm架构的原子实现在kernel/arch/arm/include/asm/atomic.h1. 设置

2012-11-12 12:51:42 310

转载 Linux 设备驱动 ====> 并发控制 --- 自旋锁

自旋锁的使用自旋锁(spin_lock)是一种典型的对临界资源进行互斥访问的手段,顾名思义,为了获得一个自旋锁,在某CPU上运行的代码需要先执行一个原子操作,该操作测试并设置某个内存变量,在该操作完成之前其他执行单元不可能访问到这个内存变量。如果测试结果表明锁已经空闲,则程序获得这个自旋锁并继续执行;如果测试表明锁仍被占用,程序将在一个小的循环内重复这个“测试并设置”操作,就是“自

2012-11-12 12:50:03 269

转载 Linux 设备驱动 ====> 并发控制 --- 信号量与互斥体

信号量信号量的使用信号量(semaphore)是用于保护临界区的一种常用方法,他的用法和自旋锁类似,但是,与自旋锁不同的是,当获取不到信号量时,进程不会原地打转,而是进入休眠等状态。Linux中信号量的操作主要有1.定义信号量struct semaphore sem;2.初始化信号量void sema_init(struct semaphor

2012-11-12 12:48:27 277

转载 多进程和多线程编程

1、多进程编程[cpp] view plaincopy#include   #include   #include     int main()  {      pid_t child_pid;        /* 创建一个子进程 */      child_pid = fork();      if(

2012-11-12 12:44:51 250

转载 fork函数实例

下面是一个fork函数的实例[cpp] view plaincopy#include   #include   #include     int     glob = 6;  char buf[] = "a write to stdout\n";    int main(void)  {

2012-11-12 12:41:22 355

转载 vfork函数实例

一下是vfork函数的实例,跟之前的fork函数类似[cpp] view plaincopy#include   #include   #include     int     glob = 6;    int main(void)  {          int var;          pid_t p

2012-11-12 12:39:47 335

转载 调用fork两次以避免僵死进程

如果一个进程fork一个子进程,但不要它等待子进程终止,也不希望子进程处于僵死状态直到父进程终止,实现这一要求的技巧是调用fork2次。下面是实例代码:[cpp] view plaincopy#include   #include   #include     int main(void)  {

2012-11-12 12:36:51 282

转载 Linux 中直接 I/O 机制的介绍

直接 I/O 的动机在介绍直接 I/O 之前,这一小节先介绍一下为什么会出现直接 I/O 这种机制,即传统的 I/O 操作存在哪些缺点。什么是缓存 I/O (Buffered I/O)缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据缓存在文件系统的页缓存( page

2012-11-12 12:23:39 678

mini2440 +uCOSII+程序镜像

mini2440在uCOSII上搞的一些程序,镜像。估计没什么用处,可以看看

2014-04-27

51单片机IO模拟SPI和25lc1024通信

用51单片机IO口模拟SPI接口和EEPROM 25LC1024芯片通信。进行读写操作,供大家学习之用。

2013-10-13

基于mini2440的看门狗

自己写的基于mini2440裸机看门狗的测试代码不是,运行通过。希望对大家有所帮助。

2013-09-15

mini2440的RTC操作

基于mini2440的RTC裸机代码,包含RTC的三个功能,即RTC、tick、闹钟。希望对大家有帮助。

2013-09-08

基于mini2440的IIC读写(裸机)

基于mini2440的IIC读写EEPROM AT24C08A的裸机代码,包含中断模式和轮询模式 供大家学习。

2013-08-25

mini2440的ADC中断

基于mini2440裸机的ADC操作源代码。有轮询的和中断的。

2013-08-09

PADS2007原理图与PCB设计

一本介绍PADS2007的书籍,如何利用PADS2007布线绘制PCB

2013-03-28

PCB电磁兼容技术—设计实践

这是一本介绍电磁兼容性的书籍。对于想成为硬件工程师的同学可以一读

2013-03-28

电路设计与制板

一本介绍电路设计和PCB制版的入门书籍

2013-03-28

现代开关电源控制电路及应用

开关电源一直是电源届的明珠,这本书是介绍开关电源方面的,扫描版

2013-03-28

数字图像处理

数字图像处理高清的一本书,适合还在高校的学生阅读。科学出版社,王桥版

2013-03-24

模拟交换机

利用C++编写的一个模拟交换机的工作,编程环境是CodeBlocks,有兴趣的同学可以下载学习

2012-12-14

TPS54331中文

TI公司的TPS54331芯片中文手册,翻译的还算可以详细的请查阅英文原版

2012-12-12

各类总线解析

对各种总线的概念做了一个大致的说明,可以学习一下

2012-11-16

IIC总线规范

IIC总线规范高清版,加上书签,对于学习IIC总线必读的规范文档

2012-11-16

AT24C1024B.pdf

AT24C1024B的说明书英文版的,感觉看了蛮有用处的

2012-11-16

TCPIP协议详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议.pdf

高清、整合成一本非多文档、去掉可恶广告。不可多得的好书

2012-11-11

TCP-IP详解卷二:实现

高清、非分卷、去掉可恶的广告.是本不可多得的好熟

2012-11-11

TCP-IP详解卷1:协议

高清、书签、去掉可恶的广告,是一本不可多得的好书。

2012-11-11

Mini2440 Linux移植开发实战指南

mini2440是学习arm+linux的号开发板这个教程是友善之臂编写的开发板教程,对于入门很有帮助

2012-10-06

C程序设计语言(第2版·新版)(去掉了可恶的广告).pdf )

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。这本书高清的版本去掉广告,加上书签。适合学习

2012-10-06

文件IO编程

关于linux的i/o简单介绍的,希望对大家学习有所帮助

2012-03-28

GNU+Make+使用手册(中译版).pdf

高清非扫描,理解 Linux的编程总体设计及思想必须首先全部读通 Linux 源代码中各级的 Makefile 文件。

2012-03-28

TQ wince开发手册

tq的嵌入式开发希望对大家有所帮助。wine的资源可以学学哈

2011-10-25

空空如也

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

TA关注的人

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