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
Ïà¹ØÎĵµ£º
2.2 ½â¾ö¿É²âÐÔÎÊÌâ
ÉÏÒ»½Ú¾ßÌå·ÖÎöÁ˿ɲâÐÔÎÊÌ⣬½ÓÏÂÀ´£¬ÎÒÃÇÀ´¿´¿´ÈçºÎ½â¾öÕâЩÎÊÌâ¡£ÏÂͼÖУ¬²ÊÉ«µÄ²¿·ÖÊÇÐèÒª½â¾öµÄ¿É²âÐԵľßÌåµÄÎÊÌâ¡£
ÓëÆäËû´úÂë¸ôÀë
ΪÁËÌá¸ßЧÂÊ£¬Ó¦¸ÃÒ»´ÎÐÔ½«Ò»Î»¹¤³Ìʦ¸ºÔðµÄ²âÊÔÈÎÎñ¸ôÀë³öÀ´¡£¸ôÀëʱ£¬Ó¦°ÑÔ´Îļþ·ÖΪÈýÀࣺ± ......
CÖеĿɱä²ÎÊýÑо¿
Ò»£® ºÎν¿É±ä²ÎÊý
int
printf( const char* format, ...);
ÕâÊÇʹÓùýCÓïÑÔµÄÈËËùÔÙÊìϤ²»¹ýµÄprintfº¯ÊýÔÐÍ£¬ËüµÄ²ÎÊýÖÐ
¾ÍÓй̶¨²ÎÊýformatºÍ¿É±ä²ÎÊý£¨ÓÔ…”±íʾ£©. ¶øÎÒÃÇÓÖ¿ÉÒÔÓø÷ÖÖ·½Ê½À´µ÷ÓÃprintf,Èç:
printf("%d",value);
printf("%s",s ......
ÔÎĵØÖ·£ºhttp://blog.csdn.net/yc0188/archive/2005/02/26/303190.aspx
ÔÚCÓïÑÔÖУ¬½á¹¹ÊÇÒ»ÖÖ¸´ºÏÊý¾ÝÀàÐÍ£¬Æä¹¹³ÉÔªËØ¼È¿ÉÒÔÊÇ»ù±¾Êý¾ÝÀàÐÍ£¨Èçint¡¢long¡¢floatµÈ£©µÄ±äÁ¿£¬Ò²¿ÉÒÔÊÇһЩ¸´ºÏÊý¾ÝÀàÐÍ£¨ÈçÊý×é¡¢½á¹¹¡¢ÁªºÏµÈ£©µÄÊý¾Ýµ¥Ôª¡£ÔڽṹÖУ¬±àÒëÆ÷Ϊ½á¹¹µÄÿ¸ö³ÉÔ±°´Æä×ÔÈ»¶Ô½ç£¨alignment£©Ìõ¼þ·ÖÅä¿Õ¼ä¡£¸÷ ......
ÊÖ¶¯Í¨¹ýgrubÃüÁîÐÐÆô¶¯Linux»òÕßwinϵͳ
ǰЩÌìfedoraµÄÆô¶¯²Ëµ¥grub.conf¶ªÊ§£¬ÎÞ·¨½øÈëϵͳ
¡£²»¹ý£¬grubÆô¶¯¹ÜÀí
Æ÷»¹ºÃºÃµÄ£¬Ö»ºÃͨ¹ýgrubÃüÁî
ÐÐÀ´ÊÖ¶¯Òýµ¼Æô¶¯ÏµÍ³ÁË¡£
¡¡¡¡ÔÚ“´ÓÓ²ÅÌ
°²
×°fedora 8
”ÖÐÔø¾ÉÔ΢Ìáµ½¹ý£¬grubÊÇÒ»¸ö¶àϵͳµÄÆô¶¯¹ÜÀíÆ÷£¬²»µ«ÓÐlinux°æ±¾µÄgrub£¬Ò²ÓÐwindows°æ± ......
àÅ£¬ÕâÊÇºÍÆ½Í¬Ñ§µÄµãÌâ×÷ÎÄÁË£¬ºÇºÇ£¬Ëû·ÇÒªÁ˽âÎÒÊÇÔõô¿ª·¢Linux³ÌÐòµÄ£¬Ö÷ÒªÊÇÕâ¸ö¹¤×÷»·¾³ÊÇÈçºÎµÄ£¿
ÔʼÎÊÌâÈçÏ£º
ÎÊ£º
ÀÏʦ£¬¿ÉÒÔдһƪÎÄÕ½éÉÜÒ»ÏÂÈçºÎʹÓÃvim´î½¨ºÃÓõÄlinux¿ª·¢»·¾³Â𣿣¨±ÈÈçvimÈçºÎÉèÖÿì½Ý¼ü¿ÉÒÔ×öµ½Ò»¼ü±àÒëºÍÔËÐУ¬³£ÓõIJå¼þÈçºÎ°²×°µÈ£©
´ð£º
ÎÒ²»»áÓÃvim£¬Ò²´Ó²»Óá£
ÎÊ£º
ÌýË ......