Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÖÐI2C×ÜÏßÇý¶¯Ìåϵ½á¹¹

×î½üÔÚ¿´Linux 2.6.21Äں˵ÄI2CÇý¶¯£¬Ò²ÔÚÍøÉϲéÁËÒ»ÏÂ×ÊÁÏ£¬ÓдíÒ²Óжԣ¬ÓÐЩÐĵ㬼ǼÏÂÀ´°É¡£ÀïÃæÈÏʶ»òÐí¶àÓв»µ±Ö®´¦£¬»¹¿ÒÇëÖ¸Õý¡£
 
1. I2C ЭÒé
 
 1.1  I2C×ÜÏß¹¤×÷Ô­Àí
      I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¸÷ÖÖ±»¿ØÖÆÆ÷¼þ¾ù²¢ÁªÔÚÕâÌõ×ÜÏßÉÏ£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΨһµÄµØÖ·Ê¶±ð£¬¿ÉÒÔ×÷Ϊ×ÜÏßÉϵÄÒ»¸ö·¢ËÍÆ÷¼þ»ò½ÓÊÕÆ÷¼þ(¾ßÌåÓÉÆ÷¼þµÄ¹¦Äܾö¶¨)
1.2  I2C×ÜÏߵļ¸ÖÖÐźÅ״̬
      1.  ¿ÕÏÐ״̬£ºSDAºÍSCL¶¼Îª¸ßµçƽ¡£
      2.  ¿ªÊ¼Ìõ¼þ(S)£ºSCLΪ¸ßµçƽʱ£¬SDAÓÉ¸ßµçÆ½ÏòµÍµçÆ½Ìø±ä£¬¿ªÊ¼´«ËÍÊý¾Ý¡£
      3.  ½áÊøÌõ¼þ(P)£ºSCLΪµÍµçƽʱ£¬SDAÓÉµÍµçÆ½Ïò¸ßµçÆ½Ìø±ä£¬½áÊø´«ËÍÊý¾Ý¡£
      4.  Êý¾ÝÓÐЧ£ºÔÚSCLµÄ¸ßµçƽÆÚ¼ä£¬ SDA±£³ÖÎȶ¨£¬Êý¾ÝÓÐЧ¡£SDAµÄ¸Ä±äÖ»ÄÜ·¢ÉúÔÚSCLµÄµ×µçƽÆÚ¼ä¡£ 
      5.  ACKÐźÅ: Êý¾Ý´«ÊäµÄ¹ý³ÌÖУ¬½ÓÊÕÆ÷¼þÿ½ÓÊÕÒ»¸ö×Ö½ÚÊý¾ÝÒª²úÉúÒ»¸öACKÐźţ¬Ïò·¢ËÍÆ÷¼þ·¢³öÌØ¶¨µÄµÍµçƽÂö³å£¬±íʾÒѾ­ÊÕµ½Êý¾Ý¡£
1.3  I2C×ÜÏß»ù±¾²Ù×÷
      I2C×ÜÏß±ØÐëÓÉÖ÷Æ÷¼þ£¨Í¨³£ÎªÎ¢¿ØÖÆÆ÷£©¿ØÖÆ£¬Ö÷Æ÷¼þ²úÉú´®ÐÐʱÖÓ£¨SCL£©£¬Í¬Ê±¿ØÖÆ×ÜÏߵĴ«Êä·½Ïò£¬²¢²úÉú¿ªÊ¼ºÍÍ£Ö¹Ìõ¼þ¡£
      Êý¾Ý´«ÊäÖУ¬Ê×ÏÈÖ÷Æ÷¼þ²úÉú¿ªÊ¼Ìõ¼þ£¬ËæºóÊÇÆ÷¼þµÄ¿ØÖÆ×Ö½Ú£¨Ç°ÆßλÊÇ´ÓÆ÷¼þµÄµØÖ·£¬×îºóһλΪ¶Áдλ £©¡£½ÓÏÂÀ´ÊǶÁд²Ù×÷µÄÊý¾Ý£¬ÒÔ¼° ACKÏìÓ¦Ðźš£Êý¾Ý´«Êä½áÊøÊ±£¬Ö÷Æ÷¼þ²úÉúÍ£Ö¹Ìõ¼þ
 
2. Linux I2C ½á¹¹·ÖÎö
2.1 ²ã´Î·ÖÎö
1. I2C Core
 I2C CoreÓÃÓÚά»¤LinuxµÄI2CºËÐIJ¿·Ö£¬ÆäÖÐά»¤ÁËÁ½¸ö¾²Ì¬µÄList£¬·Ö±ð¼Ç¼ϵͳÖеÄI2C driver½á¹¹ºÍI2C adapter½á¹¹¡£
static LIST_HEAD(adapters);
static LIST_HEAD(drivers);
I2C coreÌṩ½Ó¿Úº¯Êý£¬ÔÊÐíÒ»¸öI2C adatper£¬I2C driverºÍI2C client³õʼ»¯Ê±ÔÚI2C coreÖнøÐÐ×¢²á£¬ÒÔ¼°Í˳öʱ½øÐÐ×¢Ïú¡£¾ßÌå¿ÉÒԲμûi2c_core.c´úÂë¡£
ͬʱ»¹ÌṩÁËI2C×ÜÏß¶Áд·ÃÎʵÄÒ»°ã½Ó¿Ú£¨¾ßÌåµÄʵÏÖÔÚÓëI2C¿ØÖÆÆ÷Ïà¹ØµÄI2C adapterÖÐʵÏÖ£©£¬Ö÷ÒªÓ¦ÓÃÔÚI2CÉ豸Çý¶¯ÖС£
³£ÓõÄÖ÷ÒªÊÇ
i2c_master_send()
i2c_master_recv()
i2c_transfer()
 
2. I2C bu


Ïà¹ØÎĵµ£º

c ÓïÑÔÖеĴ«ÖµÓë´«ÒýÓÃ


#include<stdio.h>
int cubeByValue(int n);
int main(){
    int number = 5 ;
    printf("The original value of number is %d\n",number);
    number = cubeByValue(number);   
    printf("The new  ......

CÖÐÈ«¾Ö±äÁ¿ºÍº¯ÊýÉùÃ÷µÄÈÏʶ

ÔÚCÖпÉÒÔ¶¨ÒåÈ«¾Ö±äÁ¿£¬È«¾Ö±äÁ¿ÊÇÔÚ³ÌÐò¼ÓÔØ³õʼ»¯Ê±·ÖÅä¿Õ¼ä²¢½øÐгõʼ»¯¡£ÔÚc´úÂëÖж¨Òå/ÉùÃ÷È«¾Ö±äÁ¿µÄ·½Ê½ÈçÏÂ
1. int n;
    ¶¨Òå»òÕßÉùÃ÷£¨Èç¹ûÔÚÆäËûÎļþÖÐÒѶ¨Ò壩ȫ¾Ö±äÁ¿¡£
2. int n = 10;
    ¶¨ÒåÈ«¾Ö±äÁ¿²¢³õʼ»¯¡£
3. extern int n;
    ÉùÃ÷ÔÚÍⲿ¶¨Ò ......

Linux/Unix ½ø³Ì¼äͨÐŵĸ÷ÖÖ·½Ê½¼°Æä±È½Ï

      ½ø³Ì¼äͨОÍÊÇÔÚ²»Í¬½ø³ÌÖ®¼ä´«²¥»ò½»»»ÐÅÏ¢£¬ÄÇô²»Í¬½ø³ÌÖ®¼ä´æÔÚ×Åʲô˫·½¶¼¿ÉÒÔ·ÃÎʵĽéÖÊÄØ£¿½ø³ÌµÄÓû§¿Õ¼äÊÇ»¥Ïà¶ÀÁ¢µÄ£¬Ò»°ã¶øÑÔÊDz»ÄÜ»¥Ïà·ÃÎʵģ¬Î¨Ò»µÄÀýÍâÊǹ²ÏíÄÚ´æÇø¡£µ«ÊÇ£¬ÏµÍ³¿Õ¼äÈ´ÊÇ“¹«¹²³¡Ëù”£¬ËùÒÔÄÚºËÏÔÈ»¿ÉÒÔÌṩÕâÑùµÄÌõ¼þ¡£³ý´ËÒÔÍ⣬ÄǾÍÊÇË«·½¶¼¿ ......

ÓÃLVS¹¹¼Ü¸ºÔؾùºâLinux¼¯ÈºÏµÍ³

¹Ù·½ÍøÕ¾£ºhttp://www.linuxvirtualserver.org/
°Ù¶È°Ù¿Æ£ºhttp://baike.baidu.com/view/645050.htm?fr=ala0_1_1
 
ת×Ô£ºhttp://server.csdn.net/n/20090827/4278.html
ÓÃLVS¹¹¼Ü¸ºÔؾùºâLinux¼¯ÈºÏµÍ³ linux lvs
ÓÃLVS¹¹¼Ü¸ºÔؾùºâLinux¼¯ÈºÏµÍ³ linux lvs
×÷ÕߣºÓຣ·¢
Ñ¡ÓõÄLVSʵ¼ÊÉÏÊÇÒ»ÖÖLinux²Ù×÷ÏµÍ³É ......

linux I2CÇý¶¯·ÖÎö

I2CÊÇPhillips¿ª·¢µÄ2ÏߵĴ®ÐÐ×ÜÏßЭÒ顣ͨ³£Ó¦ÓÃÔÚǶÈëʽϵͳÖÐÈò»Í¬µÄ×é¼þͨÐÅ£¬PCÖ÷°å¿ÉÒÔͨ¹ýI2CÀ´Ó벻ͬµÄ´«¸ÐÆ÷ͨÐÅ¡£ÕâЩ´«¸ÐÆ÷ͨ³£±¨¸æ·çÉÈËÙ¶È£¬´¦ÀíÆ÷ζȺÍÕû¸öÓ²¼þϵͳµÄÐÅÏ¢£¬Õâ¸öЭÒéÒ²¿ÉÒÔÓÃÔÚRAM chipsÉÏ£¬Ïò²Ù×÷ϵͳÌṩDIMMµÄÐÅÏ¢¡£
ÔÚ2.0ʱI2CµÄkernelÔ´Âë²»ÔÚÄÚºËÀïµÄ£¬2.4Äں˰üÀ¨ÁËÒ»µã¶ÔI2CµÄÖ§³Ö ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ