用户态应用程序直接访问I2C驱动

发布者:钱币之歌最新更新时间:2016-04-01 来源: eefocus关键字:用户态  应用程序  I2C驱动 手机看文章 扫描二维码
随时随地手机看文章
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "fcntl.h"
#include "i2c-dev.h"       //调用来自“i2c-tools-3.1.0.tar.bz2”,包含操作I2C函数的声明
 
 
// i2c_usr_test r addr
 * i2c_usr_test w addr val
//
 
void print_usage(char *file)
{
   printf("%s r addr\n", file);
   printf("%s w addr val\n", file);
}
 
int main(int argc, char **argv)
{
   int fd;
   unsigned char addr, data;
   int dev_addr;
   
   if ((argc != 5) && (argc != 6))
   {
      print_usage(argv[0]);
      return -1;
   }
 
   fd = open(argv[1], O_RDWR);
   if (fd < 0)
   {
      printf("can't open %s\n", argv[1]);
      return -1;
   }
 
   dev_addr = strtoul(argv[2], NULL, 0);
   if (ioctl(fd, I2C_SLAVE, dev_addr) < 0)
   {    
      // ERROR HANDLING; you can check errno to see what went wrong //    
      printf("set addr error!\n");
      return -1;
   }
 
   if (strcmp(argv[3], "r") == 0)
   {
      addr = strtoul(argv[4], NULL, 0);
      
      data = i2c_smbus_read_word_data(fd, addr);
         
      printf("data: %c, %d, 0x%2x\n", data, data, data);
   }
   else if ((strcmp(argv[3], "w") == 0) && (argc == 6))
   {
      addr = strtoul(argv[4], NULL, 0);
      data = strtoul(argv[5], NULL, 0);
      i2c_smbus_write_byte_data(fd, addr, data);      
   }
   else
   {
      print_usage(argv[0]);
      return -1;
   }
   
   return 0;
}
 
关键字:用户态  应用程序  I2C驱动 引用地址:用户态应用程序直接访问I2C驱动

上一篇:移植最新uboot的总结
下一篇:UBOOT和bootloader的关系

推荐阅读最新更新时间:2024-03-16 14:48

i2c驱动之i2c-s3c2410.c
#include linux/kernel.h #include linux/module.h #include linux/i2c.h #include linux/i2c-id.h #include linux/init.h #include linux/time.h #include linux/interrupt.h #include linux/delay.h #include linux/errno.h #include linux/err.h #include linux/platform_device.h #include linux/clk.h #include linux/cpufreq.h #includ
[单片机]
如何在ADAS应用程序中使用MIPI®CSI-2端口复制记录传感器数据
随着高级驾驶员辅助系统(ADAS)促成自动驾驶,对机器视觉、查看、并行处理和数据记录的聚合视频传感器数据多副本的需求越来越多。 前置机器视觉摄像头更是需要多个副本,但它将很快适用于自主车辆的附加摄像头、雷达和光线检测/测距(LIDAR)传感器。数据记录是一个当今非常常见的复制应用(图1)。在机器视觉应用中,通常记录某些行车状况的原始传感器数据,以用于未来分析。这种情况下,拥有聚合原始传感器数据的第二副本,并将其用于数据记录,是大有裨益的;而另一个副本则用于机器视觉处理。   图1:常见的ADAS数据记录拓扑结构 复制聚合传感器数据 数据复制可在视频路径中的不同位置进行。可通过单独的电缆将每个传感器连接到机器视觉和数据记录电子控制
[嵌入式]
MSP430F5529 DriverLib 库函数I2C驱动OLED屏幕
平台:Code Composer Studio 10.4.0 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) I2C驱动代码 P3.0为SDA,P3.1为SCL MSP430F5529_I2C.c #include driverlib.h #define I2C_USCI_BASE USCI_B0_BASE #define I2C_USCI_VECTOR USCI_B0_VECTOR #define I2C_USCI_IV UCB0IV #define I2C_BUF_LENGTH 32 static char i2c_buf ; static
[单片机]
MSP430F5529 DriverLib 库函数<font color='red'>I2C</font><font color='red'>驱动</font>OLED屏幕
单片机I2C驱动子程序
晶振11.0592M/********************************************************************/ /*******************I2C模拟通信及AT24C02底层驱动程序****************/ /********************************************************************/ //AT24C02 //delayus: 延时约5us void delayus() { ;; } //i2c:init I2C总线初始化 void i2c_init() { SCL = 1; delayus(); S
[单片机]
I2C 调光控制的 36V、双通道、1.6A 同步降压型 LED 驱动
亚德诺半导体公司 ( Analog Devices, Inc. ,简称ADI) 宣布推出 Power by Linear™ 的 LT3964 ,该器件是一款双通道、36V、高效率、同步、降压型 LED 驱动器,具内部 40V、1.6A 电源开关和一个 I2C 接口,简化了 LED 调光控制。LT3964 在4V 至 36V 的宽输入范围内运行,提供两个独立控制、以高达 2MHz 切换的 LED 驱动器,可用小型外部组件构成高集成度、紧凑的解决方案。 LT3964 运用固定频率、电流模式控制,并作为具准确电流调节的恒定电流和恒定电压源运行,以在汽车、工业和建筑照明应用中提供最佳 LED 照明。两个通道在满电流负载时,同步运行可
[电源管理]
具 <font color='red'>I2C</font> 调光控制的 36V、双通道、1.6A  同步降压型 LED <font color='red'>驱动</font>器
STC单片机用户应用程序区和ISP监控程序区的区别
用户应用程序区(AP区): 是指用户自己编写的程序区 ISP监控程序区: ISP区是指芯片出厂时就已经固化在单片机内部的一段程序,STC单片机可以进行ISP串行下载程序,这就是因为芯片在出厂时已经在单片机内部固化了ISP引导码,程序首次上电时先会从ISP区开始执行代码,体现在实际实验中时,就是我们在下载程序时,先要点击下载软件界面上的下载,然后再开启单片机电源,当单片机检测到上位机有下载程序的需要时,便启用ISP下载功能给单片机下载程序。若经过短暂的时间没有检测到上位机有下载程序的需求,单片机便会从用户应用程序区(AP区)开始执行代码。
[单片机]
STM32F030 硬件I2C驱动 AT24C16
I2C 的配置 static void InitI2C() { I2C_InitTypeDef I2C_InitStructure; GPIO_InitTypeDef GPIO_InitA; RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);//使能I2C1,I2C2的时钟 RCC_I2CCLKConfig(RCC_I2C1CLK_SYSCLK);//时钟源设定 GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_1); //配置PB8 成第二功能引脚 I2C1_SCL GPIO_PinAFConfig(GPIOB,
[单片机]
STM32F030 硬件<font color='red'>I2C</font><font color='red'>驱动</font> AT24C16
金融服务机构如何优化和保障移动应用程序体验
世界经济论坛(World Economic Forum)数据显示,20世纪90年代中期到21世纪初出生的Z世代在2019年将占到全球人口(77亿人)的32%,并且首次超过了千禧一代。Z时代人群的数量正在不断增加,他们最大的特点是喜欢使用移动设备,甚至只使用移动设备(他们出生在一个可以通过网络获得各种信息并且社交媒体、通信、信息来源、约会应用以及网络银行和公用事业等一切事物都高度依赖移动设备的互联世界中)。在中国,Z世代占全国人口的约20%,他们在手机、媒体订阅等技术产品方面的支出高于西方的同龄人。因此在今年,为了满足只使用移动设备的Z世代的需求,运营的升级和网络性能的提升将成为各个行业业务的重中之重。 尤其是银行和金融服务机构
[物联网]
金融服务机构如何优化和保障移动<font color='red'>应用程序</font>体验
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved