求一个6410的IIC读写的应用程序源码 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 0%
Bbs8
本版专家分:34562
Blank
红花 2009年9月 硬件/嵌入开发大版内专家分月排行榜第一
2009年8月 硬件/嵌入开发大版内专家分月排行榜第一
2009年1月 硬件/嵌入开发大版内专家分月排行榜第一
2008年11月 硬件/嵌入开发大版内专家分月排行榜第一
2008年10月 硬件/嵌入开发大版内专家分月排行榜第一
Blank
黄花 2009年10月 硬件/嵌入开发大版内专家分月排行榜第二
2009年4月 硬件/嵌入开发大版内专家分月排行榜第二
2009年3月 硬件/嵌入开发大版内专家分月排行榜第二
2009年2月 硬件/嵌入开发大版内专家分月排行榜第二
2008年12月 硬件/嵌入开发大版内专家分月排行榜第二
Blank
蓝花 2009年7月 硬件/嵌入开发大版内专家分月排行榜第三
2009年6月 硬件/嵌入开发大版内专家分月排行榜第三
2009年5月 硬件/嵌入开发大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
6410 iic 读写问题
网上说<em>6410</em>的<em>iic</em>驱动有些问题,根据网上的资料修改了一下驱动后,用网上下载的<em>一个</em>exe测试程序随便<em>读写</em>都没有任何问题,网址如下:http://download.csdn.net/source/1488970rn后来我自己研究下驱动后,根据自己的理解写了<em>一个</em>测试的代码,可以<em>读写</em>,但是<em>读写</em>的数据很不正常。代码如下:请做过的高手指点错误:rnrnrnDWORDrnHW_WriteRegisters(rn PUCHAR pBuff, // Optional bufferrn UCHAR StartRegs,rn DWORD nRegs // number of registersrn )rnrn UCHAR tmpbuf[512];rn DWORD dwErr=1;rn DWORD bytes;rn IIC_IO_DESC IIC_Data;rn rn tmpbuf[0]=StartRegs;rn memcpy(&tmpbuf[1],pBuff,nRegs);rn rn IIC_Data.SlaveAddress = CAMERA_WRITE;rn IIC_Data.Count = nRegs;rn IIC_Data.Data = tmpbuf;rn rn // use iocontrol to writern if ( !DeviceIoControl(hI2C,rn IOCTL_IIC_WRITE, rn &IIC_Data, sizeof(IIC_IO_DESC), rn NULL, 0,rn &bytes, NULL) ) rn rn dwErr = 0;rn rn rnrn return dwErr;rnrnrnDWORDrnHW_ReadRegisters(rn PUCHAR pBuff, // Optional bufferrn UCHAR StartReg, // Start Registerrn DWORD nRegs // Number of Registersrn )rnrn DWORD dwErr=1;rn DWORD bytes;rn IIC_IO_DESC IIC_AddressData, IIC_Data;rn rn IIC_AddressData.SlaveAddress = CAMERA_WRITE;rn IIC_AddressData.Data = &StartReg;rn IIC_AddressData.Count = 1;rn rn IIC_Data.SlaveAddress = CAMERA_WRITE;rn IIC_Data.Data = pBuff;rn IIC_Data.Count = 1;rn rn // use iocontrol to read rn if ( !DeviceIoControl(hI2C,rn IOCTL_IIC_READ, rn &IIC_AddressData, sizeof(IIC_IO_DESC), rn &IIC_Data, sizeof(IIC_IO_DESC),rn &bytes, NULL) ) rn rn dwErr = 0;rn rnrn rn return dwErr;rnrnrnint _tmain(int argc, _TCHAR* argv[])rnrn DWORD i;rn UCHAR bufin[100];rn UCHAR bufout[100];rn DWORD nbyte=100;rn DWORD bytes;rn UCHAR StartAddr=0x2;rn UINT32 IICClock = 412500;rn UINT32 uiIICDelay;rn for(i=0;i)));rn return FALSE;rn rnrnrn //HW_WriteRegisters(&bufin[0],0,1);rn HW_ReadRegisters(bufout,StartAddr,1);rn CloseHandle(hI2C);rnrn return 0;rnrnrnrn程序大部分是参考camera驱动里的。rn
IIC Linux 应用层的两种操作方式
一种是使用read and write的方式<em>读写</em>。一种是使用构造i2c_msg结构体的方式并利用ioctl的方式<em>读写</em>
写Linux应用读写IIC 总线上的24c02 ,验证驱动是否正确
linux内核上已有<em>iic</em>的驱动,因此只需要对该<em>iic</em>设备文件进行<em>读写</em>则能够控制外围的<em>iic</em>器件。这里以AT24C02为对象,编写<em>一个</em>简单的<em>读写</em><em>应用程序</em>。<em>iic</em>设备文件在我的开发板上 /dev/i2c/0  ,打开文件为可<em>读写</em>。AT24C02的器件地址为0x50 ,既是<em>iic</em>总线上从器件的地址,每次只<em>读写</em>一字节数据。   /*******************************
非常详细24C08 iic程序实例
非常详细24C08 <em>iic</em>程序实例 51单片机的程序
IIC的读写时序问题
首先要明确的是两张<em>读写</em>的协议图,后续要严格按照协议来写程序就可以了。读时序下面就以AT24Cxx为例详细说明一下:首先发出<em>一个</em>start信号,从设备地址,R/W(0,写),回应ACK表示有这个从设备存在。这时候是处理器从指定的从设备读数据的从设备里8bit存储地址的指定。所以这里R/W是0为写。ACK回应有这个设备的话,处理器把要访问的从设备里的8bit存储地址写好。ACK对方回应。继续<em>一个</em>star
模拟IIC读写at24c512
模拟IIC<em>读写</em>at24c512,用at24c02程序改写,其中包括奇数位<em>读写</em>乱码、<em>读写</em>0xff问题的解决办法。欢迎登门。
ARM-Linux应用程序读写GPIO
问题背景我们在做嵌入式开发时常需要从<em>应用程序</em>中读取某个GPIO端口,这些端口往往连接了其他的板子,或外设。 那么解决问题的办法有两种。写驱动 编写<em>一个</em>linux驱动 加载到内核中 <em>应用程序</em>通过读取驱动生成的虚拟文件来<em>读写</em>GPIO 这种做法实在有些麻烦。第二种方法 mmap了解到这种方法的起因是 在阅读相关树莓派的资料时,发现人家居然可以用python访问gpio口!! 看了它的C实现版本。弄明白
读取Linux中I2C数据——c程序
关于在Linux下读取I2C数据。该程序主要是在树莓派中读取AMG8833传感器中的64个温度数据,借鉴了一些网上的方法,然后参考芯片的数据手册,数据的存储格式,本芯片是2个字节存放<em>一个</em>数据。#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#include &amp;lt;sys/types.h&amp;gt;#include &amp;lt;sys/stat.h&amp;gt;...
通过IIC模拟24c16读写程序
程序可对24C16进行<em>读写</em>控制,本程序代码已经通过实践
I2C总线浅谈之(三)---以C语言实例分析IIC
为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形: 如下图所示的写操作的时序图:   读时序的理解同理。对于时序不理解的朋友请参考“I2C总线浅谈之(二)---时序 完整的程序如下:   #include #define uchar unsigned char #define uint unsigned int #define write_ADD
EEPROM—_IIC总线编程,用按键控制IIC写入读取数据并由数码管显示
关于IIC串行总线的组成及工作原理 1.采用串行总线技术可以使系统的硬件设计大大简化,系统的体积减小,可靠性提高,同时,系统的更改和扩充极为容易。 2.常用的串行扩展总线有:IIC(Inter IC BUS)总线、单总线,SPI总线及Microwire、PLUS 3.IIC是一种串行总线,只有两根双向信号线: ...
stm32学习笔记---IIC通信以及用IIC实现EEPROM的读写
   IIC通信 #include &quot;i2c_driver.h&quot; #include &quot;systick_driver.h&quot; #define GPIO_PORT_I2C GPIOB /* GPIO端口 */ #define RCC_I2C_PORT RCC_APB2Periph_GPIOB /* GPIO端口时钟 */ #define I2C_SCL_PIN GPIO_Pin_6...
IIC多字节读取
#include "wx_i2c.h" #define IIC_Write_Address 0xa0 //Write Address #define IIC_Read_Address 0xa1 //Read Address #define IIC_SDA_DAT GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11)#define IIC_SDA_L GPIO_R
记录一下IIC读和写的时序
           经常使用IIC接口,可谓是操作各类IC芯片的家常便饭.不过说实话硬件IIC,每家MCU都弄得不一样,好烦躁。IIC  读时序:      Read从图中可以看出; 这读的波形可相当漂亮:(1)起始信号: 绿点. SCL高电平的时候,SDA由高变低。这个是由主机产生。(2)Read: 0x73 最后一位是1 说明读, addr(7位) 填上第0位是 R(1)或者W(0) 标志位...
6410的GPIO使用
一,每组GPIO的数目:        #define S3C64XX_GPIO_A_NR (8)        #define S3C64XX_GPIO_B_NR (7)        #define S3C64XX_GPIO_C_NR (8)        #define S3C64XX_GPIO_D_NR (5)        #define S3C64XX_GPIO_E_NR (
IIC 读写操作 Linux下读写芯片的I2C寄存器
    要想在Linux下<em>读写</em>芯片的I2C寄存器,一般需要在Linux编写一份该芯片的I2C驱动,关于Linux下如何编写I2C驱动,前一篇文章《手把手教你写Linux I2C设备驱动》已经做了初步的介绍,并且留下了两个疑问尚未解决,第<em>一个</em>是如何对Linux提供的I2C操作函数进行进一步封装,实现对芯片寄存器的<em>读写</em>;另<em>一个</em>是如何在用户空间调用该I2C驱动代码。本文将讨论前<em>一个</em>问题。     ...
IIC连续读写出错检查办法
单片机连续<em>读写</em>出错 现象:读取单个字节的时候是正确的,但连续读或连续写会出错 经过排查, 1、发现单片机连续读epprom时,没有回应ack 2、start –&amp;gt; send 器件地址写–&amp;gt; epprom存储地址 –&amp;gt; 器件地址读 时,中间有步骤出错 #include &amp;lt;reg52.h&amp;gt; #include &quot;intrins.h&quot; #include &quot;type....
STM8L硬件IIC从机
STM8L 的硬件IIC从机,调试通过可以使用
IIC读写16位地址的寄存器
一般来说IIC器件的内部寄存器地址都是8位的,这样在进行<em>读写</em>操作时,发送完器件地址之后直接发送<em>一个</em>字节的寄存器地址,然后即可以进行<em>读写</em>。但是有的器件内部寄存器是按照16位地址编排的,例如一些EEPROM器件,由于存储的数据量较大就会需要较大的寻址空间,对于这种的器件的内部寄存器寻址就需要多个字节的地址,也就是在发送完器件地址之后需要发送多个寄存器地址字节,具体实现如下程序所示: u8 IIC_R
宋老师IIC读写方法
/* E2读取函数,buf-数据接收指针,addr-E2中的起始地址,len-读取长度*/void E2Read(unsigned char *buf, unsigned char addr, unsigned char len){    do {                       //用寻址操作查询当前是否可以进行<em>读写</em>操作        I2CStart();        if (I...
IIC读写AT24C02代码2——串口命令控制多页读写
通过串口输入 R 、W 进行控制程序<em>读写</em>IIC设备。波特率9600bps,晶振115200HZ。 main.c   /*----------------------------------------------- IIC编程 1 编写:Louis 邮箱:kaly.liu@163.com 日期:2015.06.01 修改:通过串口命令R/W,控制EEPROM的读R写W...
IIC通信协议
找了很久才找到关于IIC的程序,拿来给大家分享一下!
stm32f103硬件IIC读写24c02的代码
stm32f103硬件IIC<em>读写</em>24c02的代码,直接加入工程使用。
学习笔记——51通过IO口模拟IIC实现AT24C02的读写
1.硬件连接AT24C02是<em>一个</em>2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有<em>一个</em>8字节页写缓冲器。该器件通过IIC总线接口进行操作,有<em>一个</em>专门的写保护功能。在单片机上的应用广泛, 可以实现掉电数据不丢失功能。2.AT24C02<em>读写</em>时序说明:(1)写数据描述:通过IIC几种信号的组合,可以向AT24C02指
单片机模拟IIC时序读写24C02
一、什么是IIC总线 IIC即集成电路总线,也是一种非常常用的总线是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。 注意:IIC芯片在工业上的应用也是非常重要的,与串口、SPI、CAN等总线齐名。 二、IIC总线协议简介 IIC串行
关于6410 IIC读写AT24C02!做过的请进!
这两天在编写测试<em>6410</em> IIC,发现<em>一个</em>非常奇怪的问题,rn 读数据时会产生数据终止,不是每次都会,但多读了几次就一定会产生数据异常。异常信息如下:rn[color=#FF0000]Exception 'Data Abort' (4): Thread-Id=01840006(pth=85aa48d4), Proc-Id=00400002(pprc=82699308) 'NK.EXE', VM-active=04ec0006(pprc=849cda50) 'explorer.exe'rnPC=c0b721cc(s3c<em>6410</em>_<em>iic</em>.dll+0x000021cc) RA=c0b721b8(s3c<em>6410</em>_<em>iic</em>.dll+0x000021b8) SP=d283fe64, BVA=0004f2cd[/color]rnrn应用里面读取一Byte数据函数如下:rnvoid CIICDlg::IICReadModeOneByte(void)rnrn UCHAR OutputBuf=0;//read on bytern DWORD ReadBytes;rn IIC_IO_DESC IIC_AddressData, IIC_Data;rn char AddrBuf[4];rn UCHAR WordAddr=0;rn CString str;rn char xx[4];rnrn m_addr_buf.GetWindowTextW(str);rn wcstombs(AddrBuf, str, sizeof(AddrBuf));//str->pOutputrn WordAddr = atoi(AddrBuf);rn RETAILMSG(1, (TEXT("[APP IICReadModeSingle]: WordAddr = 0x%x\r\n"), WordAddr));rnrn /*Dummy write*/rn[color=#0000FF] IIC_AddressData.SlaveAddress = IicSet.slave_addr;//writern IIC_AddressData.Data = &WordAddr;//start addrrn IIC_AddressData.Count = 1;//sizeof(WordAddr);rnrn IIC_Data.SlaveAddress = IicSet.slave_addr;//|0x1;//readrn IIC_Data.Data = &OutputBuf;rn IIC_Data.Count = 1;//sizeof(OutputBuf);rnrn if (!DeviceIoControl(hIic,IOCTL_IIC_READ, &IIC_AddressData, sizeof(IIC_IO_DESC), &IIC_Data, sizeof(IIC_IO_DESC),&ReadBytes, NULL)) rn rn m_receive_buf.SetWindowTextW(TEXT("IIC read single data failed !"));rn rn elsern rn [/color]rn
Tiny6410学习笔记1——GPIO
GPIO硬件介绍GPIO(General Purpose I/O Ports)意为通用输入输出端口,也就是一些引脚,通过它们输出高低电平或者通过它们读入引脚的状态——高电平还是低电平。 在S3C<em>6410</em>芯片中,包含187个引脚,有17个端口,分别是GPA,GPB,…,GPQ。可以通过设置寄存器来确定某个引脚是用于输入、输出还是其他特殊功能。通过寄存器来操作GPIO引脚既然<em>一个</em>引脚可以用于输入、输出
STM32 GPIO 模拟IIC (I2C) c语言 源代码(测试绝对可用)
STM32 GPIO 模拟IIC (I2C) c语言 源代码(测试绝对可用) 用STM32 GPIO模拟IIC 的c语言源代码,自己的项目中的,绝对可用。
BQ27510模拟IIC读取数据详解
关于TI 的BQ系列电池管理芯片详细操作步骤。这款芯片功能还是很强大的,具体的我就不介绍了,查看datasheet。 本文介绍主要是通过模拟IIC读取BQ27510数据。 1、模拟IIC:之所以用模拟IIC是应为比较灵活一点,便于调试。对于模拟IIC可以看IIC通信协议写相关的函数;一般如果在调试IIC时用示波器看数据不稳定,示波器闪屏,一般是延时不够造成的。模拟IIC就不多介绍了,这个程序写
IIC不能连续读出多个字节
IIC不能连续读出多个字节,只能读出第<em>一个</em>字节,后面读到的都是OXFF 最近使用stm32与MPU6050通信,需要一次传输多个数据,根据例程,在stm32f103上正常实现了功能,一次读出24个数据,但将代码移植到stm32f407上,出现了不能连续读出多个字节,只能读出第<em>一个</em>字节,后面读到的都是OXFF。 多次尝试后,发现是f407的主频太快,程序中使用的是<em>一个</em>简单的延迟 // 简单的延时函...
AT24Cxx芯片读写--IIC总线
型号               容量               器件寻址字节(8位)       一次装载字节数  AT24C01        128×8        1010A2A1A0 R/W                 8 AT24C02       256×8         1010A2A1A0 R/W                 8  AT24C04      
基于FPGA EEPROM读写实现及IIC总线协议和时序分析
结构框图引脚说明 串行时钟信号引脚(SCL):在 SCL输入时钟信号的上升沿将数据送入 EEPROM器件,并在时钟的下降沿将数据读出。 串行数据输入/输出引脚(SDA): SDA 引脚可实现双向串行数据传输。该引脚为开漏输出,可与其它多个开漏输出器件或开集电极器件线或连接。 器件/页 地址脚(A2,A1,A0): A2、A1 和 A0 引脚为 24C01与 24C02 的硬件连接的器件地址输入引脚。
android读写iic设备
在android开发和移植过程中,有时需要对某设备进行<em>读写</em>,但系统可能并未提供相应的服务。我们就需要自己开发硬件访问服务来控制设备。下面的例子是<em>读写</em>最简单的i2c设备eeprom的流程, i2c的驱动编写有两种方式,一种是利用系统提供的i2c-dev.c来实现<em>一个</em>i2c适配器的设备文件,然后通过在应用层操作I2C适配器来控制I2C设备;另一种是为I2C从设备独立编写<em>一个</em>设备驱动,不需要i2c-de
(学习笔记3)STM32F429库函数之I2C读取EEPROM
I2C外设通信发送过程中的标志清零一开始真的很困扰人。。
Linux下的eeprom读写操作(IIC)
利用Linux内核自带的IIC总线驱动,按系统提供的框架,用ioctl方法对eeprom设备进行<em>读写</em>操作,并分别按单字节及多字节<em>读写</em>方式,对外提供函数接口,以供外部程序方便调用。   程序由3个文件组成,分别为头文件
Linux下I2C应用程序
#include #include #include #include #include #define I2C_RDWR 0x0707 struct i2c_rdwr_ioctl_data { struct i2c_msg  *msgs; /* pointers to i2c_msgs */ unsigned int nmsgs; /* number
单片机之IIC--AT24C256的读写程序
     <em>一个</em>通用的24C01-24C256共9种EEPROM的字节<em>读写</em>操作程序,此程序有五个入口条件,分别为<em>读写</em>数据缓冲区指针,进行<em>读写</em>的字节数,EEPROM首址,EEPROM控制字节,以及EEPROM类型。此程序结构性良好,具有极好的容错性,程序机器码也不多:DataBuff为<em>读写</em>数据输入/输出缓冲区的首址Length 为要<em>读写</em>数据的字节数量Addr 为EEPROM的片内地址 AT24256为...
应用层读写I2C信息,可读写寄存器为8位或者16位的reg信息
 #include "standard_i2c.h" #include #include #include #include #include #include #include #include #include #include #if 0 #include #include #else #define I2C_M_WT    0x
PIC单片机-普通IO口模拟I2C总线对24C02进行读写操作
使用PIC单片机的普通IO口模拟I2C总线,对24C02进行<em>读写</em>操作。其中,总线定义为: #define       IIC_SCLK     RC3      //24C02时钟线 #define      IIC_SDAT     RC4      //24C02数据线 将跳线帽P11短接至24C02方向,将跳线帽P6段接至IIC方向。 I2C 总线协议规定任何将数据传送到总线的
基于verilog的EEPROM读写
I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL这里以<em>一个</em>byte的<em>读写</em>为例时序图:写时序 读时序 通过时序图可知,IIC读的时候需要先完成写的控制字和地址的命令,因为读的部分和写的部分有重复,所以这里的IIC控制模块我使用状态机来完成的,划分状态时,写时序的start—ack_low_addr这段为复用状态控制命令和状态的定义//instru parameter
AT24C256(EEPROM)读写程序
模拟IO口通信方式下的,与AT24C256(EEPROM)的I2C通信程序
模拟SPI读写FM24CL64
本人自己写的程序,以前想从网上找,死都找不到,郁闷死了,现在写出来了,共享一下
linux IIC子系统分析(一)——AT24C02 芯片简介
现在很多地方都有应用到eeprom存储芯片,主要是因为它现在存储空间越来越大,价格越来越便宜,我使用的mini2440开发板上贴的是AT24C02,与S3C2410的IIC相连接,为了更好的学习Linux的IIC子系统,了解IIC芯片操作方式是非常有必要的。AT24C02芯片特性和引脚功能定义直接看Datasheet就可以了。我只关注设备地址和操作方式,我们实际应用中知道这些就可以操作它了。1.A...
STM32驱动PCF8563,使用模拟IIC
#ifndef PCF8563_CFG_H #define PCF8563_CFG_H ////////////////////////////////////////////////////////////////////////////////////// //------------使用包含的头文件 #include &quot;i2c_task.h&quot; #ifdef USE_MCU_STM32 #i...
STM32—基于模拟IIC方式读取EEPROM
  前言: 最近在调试STM32L152芯片利用IIC接口读取EEPROM的程序,总结下STM32的 IIC接口 读取EEPROM的使用方法。 PS:由于STM32的硬件IIC存在一些问题,本文暂时使用模拟IIC进行EEPROM的读取。STM32的硬件IIC使用方法见另外两篇文章:传送门1和传送门2。 硬件平台:STM32L152 软件平台:keil v5+cubeMX 函数库:HAL...
IIC接口的铁电存储器测试程序,已通过验证
IIC接口的铁电存储器测试程序,已通过验证
IIC时序详解
AT24C02是由ATMEL公司提供的,IIC总线串行EEPROM(electronic eraser programmer read only memory),其容量为2kbit(256B),工作电压在2.7v"5.5v之间,生产工艺是CMOS。      一般数字芯片都在左下角和右上角为GND,VCC。容量的计算方法:AT24Cxx :01"1024   容量 = xx * 1k
I2C总线浅谈之(四)--STM8的IIC驱动文件示例
本示例提供STM8S103F核心板的IIC驱动文件源代码,亲测没有任何问题,博主使用来驱动AT24C256和电子罗盘MMC5883MA,IIC通信速率100kHz,可以调整时序延时时间。 直接贴<em>源码</em>: IIC.h #ifndef _IIC_H #define _IIC_H #include "iostm8s103F3.h" #include "type_def.h" #define II
Android平台读写i2c设备开发笔记
在android开发和移植过程中,有时需要对某设备进行<em>读写</em>,但系统可能并未提供相应的服务。我们就需要自己开发硬件访问服务来控制设备。下面的例子是<em>读写</em>最简单的i2c设备eeprom的流程, i2c的驱动编写有两种方式,一种是利用系统提供的i2c-dev.c来实现<em>一个</em>i2c适配器的设备文件,然后通过在应用层操作I2C适配器来控制I2C设备;另一种是为I2C从设备独立编写<em>一个</em>设备驱动,不需要i2c-de
OK6410裸机简单NANDFLASH初始化及读写擦除
OK<em>6410</em>裸机简单的NANDFLASH<em>读写</em>及擦 文章转载请注明出处:http://blog.csdn.net/wf395962475/article/details/8221250 今天完成了OK<em>6410</em>裸机简单的NANDFLASH<em>读写</em>及擦除,那么直接进入正题。 我的操作环境是: 主机:WIN7系统, VMware RHEL5  8.0 虚拟机。 开发板:OK641
6410 gpio控制及接口
updating unsigned tmp; //gpe1 pull up,置位3:2=10b,其余不变 tmp = readl(S3C64XX_GPEPUD); tmp &= ~(2<<<2; writel(tmp,S3C64XX_GPEPUD); //gpe1 output mode,置位7:6:5:4=0001b,其余不变 tmp
STM32 IIC通信往24C02写数据、读数据
1、24C02模块的原理图:从图中可以看出,A0、A1、A2三个引脚全部接地,说明表示器件地址7位数据后三位全部是0       注:当上<em>一个</em>数据写完之后,若发送停止信号,则至少停下10ms时间后,才能再发送起始信号,这个时间就叫做写周期。 3、器件寻址:                    4、字节写:                 5、写页:
设备驱动之七----s3c6410 GPIO驱动总结
上一节对GPIO相关的三个主要头文件进行了简单分析(见http://blog.csdn.net/qingyu2431/article/details/6904869),在此基础上对GPIO的操作进行简单的总结: 1、查看gpio状态:头文件中int gpio_request(unsigned gpio, const char *label); ,该函数的功能是通过查看该gpio保存的记录标志
基于嵌入式linux iic 总线读写mpu6050
/************************************************************/ //文件名:mpu6050.c //功能:测试linux下<em>iic</em><em>读写</em>mpu6050程序 //使用说明: (1) // (2) // (3) // (4) //作者:huangea //日期:2016-10-03 /***
IIC的地址
7位寻址在7位寻址过程中,从机地址在启动信号后的第<em>一个</em>字节开始传输,该字节的前7位为从机地址,第8位为<em>读写</em>位,其中0表示写,1表示读。图1:7位寻址。I2C总线规范规定,标准模式I2C,从机地址为7位长,其次是读/写位。任何I2C设备都必须遵循这个标准,USB2XXX传输的从机地址即为这7bit地址,不包含<em>读写</em>位,<em>读写</em>位会根据不同的函数自动添加进去。保留地址I2C规范保留了两组和8个地址,1111...
使用Beaglebone Black的I2C (二)——使用C语言和i2c-dev驱动
在本博客的《使用Beaglebone Black的I2C(一)》中,介绍了BBB上无需编程对i2c总线进行<em>读写</em>操作的方法,本文将介绍如何在c语言程序中使用i2c-dev驱动来操作i2c设备。
IIC总线协议---以存储芯片at24c64为例
IIC总线协议 前言:年前给老师做个红外抄表系统,,现在对当中用到的一些模块总结一下. 1.只有在总线空闲时才允许启动数据传送.2.在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变.时钟线为高电平时,数据线的任何电平变化将被看做总线的起始或停止信号.3. 任何将数据传送到总线的器件作为发送器任何从总线接收数据的器件为接收器, 主器件和从器件都可以作
飞凌TE6410开发Qt/E 4.4.3界面程序步骤
1、用 /joe/4.4.3/builddir/sdk/qtopiacore/target/bin/qmake 工具编译编写的程序,生成Makefile文件 2、修改Makefile文件, CFLASS =  -fno-rtti  CXXFLAGS = -fno-rtti /usr/local/arm/4.4.1/bin/ 3.设置交叉编译工具export PATH=/usr/loc
构建驱动模块2--STM32模拟IIC访问 (AT24C02)EEPROM 操作
            构建驱动模块2-- STM32模拟IIC访问 (AT24C02)EEPROM 操作         模拟IIC接口可以使用任意两个IO口实现,不受芯片引脚限制,而且硬件IIC在通信出错后,无法自行恢复,模拟IIC则可以迅速恢复;通过调整延时参数,可以调节访问速度。本程序把模拟II2C封装成<em>一个</em>模块,AT24C02只需要调用该模块即可。 1、初始化EEPROM设备。调用...
51单片机的i2c多字节的读写24c02
#include          //头文件的包含 #include #define  _Nop()  _nop_()        //定义空指令 // 常,变量定义区 unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,            
USB转I2C/IIC上位机调试软件Classic版本
Ginkgo USB-I2C适配器上位机软件Classic版本,利用该软件可以实现对I2C接口的任何芯片进行数据<em>读写</em>控制,方便开发调试!
i2c总线测试程序
使用工程i2c-utils下载地址 https://gitcafe.com/21cnbao/i2c-utils 该工程支持的reg_address是8位的,由于需要支持16位的,对i2c-util.c做了些修改。 static int i2c_read_reg(char *dev, unsigned char *buf, unsigned slave_address, unsigned
命令行读写i2c寄存器操作
写命令格式: 寄存器地址 长度 数据 读命令格式: # echo “寄存器地址” &amp;gt; getreg # cat getreg 1.使能寄存器 # adb shell &quot;echo &quot;0x01,0x01,{0xff}&quot; &amp;gt; /sys/bus/i2c/devices/1-20/setreg&quot; 2.禁掉寄存器 # adb ...
dsp2812 IIC EEPROM读写数据实验程序
dsp2812 IIC EEPROM<em>读写</em>数据实验程序,适用于新手学习,已调试
6410 iic测试问题
请问大家 wince下 在<em>6410</em>中typedef struct _IIC_IO_DESC rn UCHAR SlaveAddress; // Slave Addressrn // UCHAR WordAddr;rn PUCHAR Data; // pBufferrn DWORD Count; // nBytes to read/writern IIC_IO_DESC, *PIIC_IO_DESC; 没有定义字节地址 那我怎样将数据写入地址中呢 大家帮帮忙啊
【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)
IIC的基本介绍 IIC的简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。它是半双工通信方式。 IIC总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10...
FileMon 是一个出色系统文件监视工具,可以监视应用程序进行的文件读写操作
FileMon 是<em>一个</em>出色系统文件监视工具,可以监视<em>应用程序</em>进行的文件<em>读写</em>操作,localizer、hacker 或 cracker 必备。
IIC方式读驱动AT24C16芯片
闲来无事,找了块msp430的板子编写了个IIC驱动AT24C16的程序。 IIC作是一种简单,双向,同步的二进制总线,由SDA数据线和SCL时钟线组成,所有接到IIC总线上的各设备的SDA数据线都连接到总线的SDA数据线上,用来进行数据的传输;所有接到IIC总线上的各设备的SCL时钟线都连接到总线的SCL时钟线上,用来同意时钟。以下是IIC的各个状态: 当总线是空闲状态时,都为SCL和SDA...
IIC详解,包括原理、过程,最后一步步教你实现IIC
IIC详解   1、I2C总线具有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL     2、IIC总线上可以挂很多设备:多个主设备,多个从设备(外围 设备)。上图中主设备是两个单片机,剩下的都是从设备。    3、多主机会产生总线裁决问题。当多个主机同时想占用总线时,企图启动总线传输数据,就叫做总线竞争。I2C通过总线仲裁,以决定哪台主机控制总线   4、上拉电阻一...
STM32硬件i2c调试24C16记录(挣扎一天)
STM32硬件i2c调试24C16记录(挣扎一天)   1. 注意24C16的管脚7是写保护,需要把它拉低(我就是在这里挣扎了读数据出错) 2.  24C16只能挂1个 3.  24C16的A2,A1,A0都是页地址,而不是器件地址,器件地址固定是0xA0 4.  24C16的IIC函数第二个地址是从0开始,每256byte进行加一次地址,也就是说每次<em>读写</em>最大就是256byte,超过了的
IIC设备驱动程序(九)————用户态直接访问IIC设备
用户态直接访问IIC设备实例
IIC读写16位地址的寄存器(有的器件内部寄存器是按照16位地址编排)
一般来说IIC器件的内部寄存器地址都是8位的,这样在进行<em>读写</em>操作时,发送完器件地址之后直接发送<em>一个</em>字节的寄存器地址,然后即可以进行<em>读写</em>。但是有的器件内部寄存器是按照16位地址编排的,例如一些EEPROM器件,由于存储的数据量较大就会需要较大的寻址空间,对于这种的器件的内部寄存器寻址就需要多个字节的地址,也就是在发送完器件地址之后需要发送多个寄存器地址字节,具体实现如下程序所示:   u8 I...
模拟IIC 24cxx系列 读写eeprom 连续读写 页写 stm32 24c128 24c256
24c系列的快速<em>读写</em>eeprom,同等情况下,使用页写的方式,比传统的<em>一个</em><em>一个</em>字节的写快64倍,适用于需要快速<em>读写</em>的领域,1s可以传输6k左右的数据,<em>读写</em>稳定。
6410 IIC驱动源码
三星的驱动 <em>6410</em>IIC驱动有很多bug,这个是自己修改后已测试不会报错的版本。
STM32F4 I2C/IIC 驱动程序
STM32F4的I2C配置,已经写好了读函数可写函数,由I2C.c和I2C.h组成,直接可用
IIC读写AT24C02代码1——通过串口命令控制R/W
IIC<em>读写</em>AT24C02代码1——通过串口命令控制R/W,并显示到串口!   主函数 /*----------------------------------------------- IIC编程 1 编写:Louis 邮箱:kaly.liu@163.com 日期:2015.05.25 修改:通过串口命令,控制EEPROM的<em>读写</em>。并从串口提示。 晶振:11.059...
Linux应用程序直接调用I2C控制器实现的设备驱动
参考内核<em>源码</em>里的dev-interface文档. 在linux内核里i2c控制器驱动好后, i2c设备驱动方式通常由设备驱动通过控制器<em>读写</em>i2c设备数据、再提供<em>应用程序</em>调用和访问的接口. 除此设备驱动方工外,驱动好的i2c控制器也可提供<em>应用程序</em>直接调用控制器收发i2c设备数据的接口(dev-interface).这接口适用于一些没涉及到中断的简单设备,如dht12, eeprom等设备...
IIC详解
本文的程序是主控室STM32F207,读取的芯片是PCF8563。各种宏定义和文件会在末尾说明。   1、IIC的定义: IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同...
iiC原理以及源码例程
iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>iiC原理&<em>源码</em>
28335的I2C对EEPROM的读写程序
28335的I2C对EEPROM的<em>读写</em>程序,用中断实现的,不是模拟的
S3C2440 Linux下的I2C驱动以及I2C体系下对EEPROM进行读写操作。
这篇文档算上期末复习这段时间其实拖了有好久了,因为从一开始接触linux的i2c驱动体系我就各种凌乱,经常性的在看内核代码时看着看着就把自己看飞了。结果就是无功而返,还使自己挫败感爆表,丧失信心。所以我决定当前阶段把结构体熟悉,知道大致的驱动体系框架。日后真正做到此类项目时再来深入理解,总结。
TE6410触摸屏校正--使qtopia4.4.3应用程序支持触摸功能
飞凌TE<em>6410</em>自带的文件系统的Qtopia4.4.3没有触摸屏校正过程;因此需要自己在/bin/qtopia4文件中写入触摸屏校正程序,如果不写这个的话,系统就可能会使用qtopia2.2.0 的屏幕校正文件,从而导致自己编写的qtopia4.4.3<em>应用程序</em>不能支持触摸功能(其实是支持的,是不能识别位置而已)。 程序如下: if [ -c /dev/input/even
I2C读写时序
1. I2C写时序图:     注意:最后<em>一个</em>byte后,结束标志在第十个CLK上升沿之后:   2. I2C读时序图:     注意:restart信号格式;读操作结束前最后一组clk的最后<em>一个</em>上升沿,主机应发送NACK(之前的读clk后最后<em>一个</em>bit发送ACK),然后再发送结束标志。
linux基于i2c-tools快速搭建设备读写环境
一.实验环境 1.硬件平台 · arm开发板(使用i2c line 4) · i2c接口的imu 2.软件环境 · ubuntu 16.04 · i2c-tools 3.1.2 二.实验步骤 1.提取所依赖的i2c-tools文件 · i2c-dev.h · 2cbusses.h · 2cbusses.c 2.调用必要头文件 #include &amp;lt;sys/io...
6410接IIC芯片24c02电路图
在改造矩阵键盘的时候发现,键盘接口有IIC引出,于是改造如下。 1. 24C02引脚定义如下: 2. 24C02用小板转接后的效果如下: 3. 24C02与<em>6410</em>接口原理图,如要上拉10K电阻2个。VCC=5V或3.3V均可。 4.24C02焊接图。 5.与键盘对应图。 可以看到,焊接和原理图左右对调了。 6.整体效果图。
I2C无法写入和读出寄存器值
之前不小心把自己做的通过6124B控制dms模组的功能的<em>源码</em>全给删掉了,可是吓死我了,没办法只能自己加班偷偷赶出来。 这次给我的教训就是所有的<em>源码</em>都应该留有备份,除非确认不需要的<em>源码</em>。   凭借着我的记忆,我其实已经把6124B的功能做出来了,只是因为I2C<em>读写</em>失败的问题导致一直接受不了dms的图像。我用的是我之前写的linux应用层的i2c设备文件的<em>读写</em>方式进行控制i2c接口的。一直以为是...
STC12C和C51单片机IIC读写AT24C02
STC12C5A IIC接口<em>读写</em> AT24C02 89C5A IIC <em>读写</em>AT24C02 51的的protuse仿真
详解i2c(三)c语言实现
为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形: 如下图所示的写操作的时序图:   读时序的理解同理。对于时序不理解的朋友请参考“I2C总线之(二)---时序” 完整的程序如下:   #include #define uchar unsigned char #define uint unsigned int #defi
Hi3516A开发--I2C/SPI读写命令
I2C <em>读写</em>命令示例此操作示例通过 I2C <em>读写</em>命令实现对 I2C 外围设备的<em>读写</em>操作。a. 在控制台使用 i2c_read 命令对 I2C 外围设备进行读操作:~ $ i2c_read 例如读挂载在 I2C 控制器 2 上的 sil9024 设备的 0x8 寄存器:~ $ i2c_read 2 0x72 0x8 0x8 0x1 0x1说明:i2c_num: I2C 控制器序号(对应《
基于OK6410开发板Uboot源码简单分析
2018-04-07OK<em>6410</em>开发板是基于三星S3C<em>6410</em>芯片设计的一款开发板,资源比较丰富,可是想要使用这些资源就需要编写相应的启动引导程序,即BootLoader。当然,想要自己凭空写出BootLoader那简直就是天方夜谭,所以我们需要参考行业中现有的BootLoader,在其基础上再结合实际的控制芯片和开发板相关硬件资源编写适合自己的BootLoader代码。如今市面上常用的嵌入式Bo...
基于S3C6410的ARM11学习(一) 基础知识
手上有一块OK<em>6410</em>的板子,就想起来花点时间学习下经典的ARM系列ARM11。了解一下ARM11的开发流程,以及怎么跑系统。 ARM11和之前学习的STM32的开发是很不一样的。STM32,都是把代码烧到STM32芯片FLASH中,然后代码从FLASH中执行,而且程序执行是不需要外部挂ram的,因为芯片的内部就集成了一定大小的ram。 而ARM11是不一样的,内部没有FLASH和ra
iic读写程序
<em>iic</em>的<em>读写</em>程序C语言类.<em>读写</em>时序,<em>读写</em>控制等
IIC读取AT24C256数据出现的问题及解析
硬件平台STM32F407ZGT6,AT24C256软件平台MDK5,GPIOG_PG2->SCL,GPIOG_PG3->SDA,属于软件模拟IIC问题描述在用逻辑分析仪分析时序时发现时序完全没问题,如图:向地址为7FFFH的地址写0X55: 对地址为7FFFH的地址读数据: 由图可以看出写并没出现问题,问题出在读数据时。读时序正确,但是读出来的值为0XFF,这是个错误值,因为前面我已经向改
I2C总线的连续读和连续写
想写个在给地址后能一直读或写的程序,因为郭天祥的教程里只有单个字节<em>读写</em>示例。可在网上找了好久没找到合适的示例,只好自己看着手册,慢慢摸索。皇天不负苦心人呀,终于出来了。 写完程序的同时也学会了怎样看手册的时序图。   还有此代码只实现了同时写读两个字节,至于在未达到芯片页面通信量的最大值的范围内都可以用FOR循环实现。下面就是代码:  #include #include   #def
硬件I2C(TWI)读写PCF8563和24CXX程序
//ICC-AVR application builder : 2010-3-5 13:51:50 // Target : M88 // Crystal: 8.0000Mhz #include #include #include //I2C(TWI)基本指令 #define I2C_START() TWCR = BIT(TWINT)|BIT(TWEN)|
关于SpringBoot bean无法注入的问题(与文件包位置有关)
问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架<em>一个</em>module spring-boot-base service和dao<em>一个</em>module server-core 提供系统后台数据管理<em>一个</em>module server-platform-app 给移动端提供rest数据接口<em>一个</em>module server-mobile-api 其中server-platform-app 与
数据挖掘:概念与技术.pdf下载
数据挖掘是数据库研究、开发和应用最活跃的分支之一。本书从数据库角度全面、系统地介绍数据挖掘的基本概念、基本方法和基本技术以及数据挖掘的最新进展,是一本可读性极佳的教材。 本书全面而深入地叙述了数据库技术的发展和数据挖掘应用的重要性,数据仓库和OLAP(联机分析处理)技术,数据预处理技术(包括数据清理、数据集成和转换、数据归约的方法),数据挖掘技术(包括分类、预测、关联和聚类等基础概念和技术),先进的数据库系统中的数据挖掘方法,数据挖掘的应用和一些具有挑战性的研究问题。作者注重实效,将以上内容辅以实例,对每类问题均提供代表性算法,并给出每一技术具体的应用法则。该书由10章及两个附录组成。通过本书 相关下载链接:[url=//download.csdn.net/download/sandylunar/1317984?utm_source=bbsseo]//download.csdn.net/download/sandylunar/1317984?utm_source=bbsseo[/url]
功能强大的串口工具:GhostyComm 4.0(万能通讯精灵)下载
功能强大的串口工具:GhostyComm 4.0(万能通讯精灵) 本软件是本人在2002初从事单片机开发工作时为了方便调试而编写的,当时是win 98版本。2003年才开发win xp版本。直到2007年前,仅支持串口,2006年增加了TCP连接的功能。 串口组件为第三方组件,TCP服务/客户主件为本人开发的“异步多线程”TCP组件,TCP服务组件为服务器级别的组件,每个客户连接有一个独立的线程响应处理。 本软件是单片机开发、调试不可缺少的功能齐全的串口工具——没有好的仿真器就要有好的串口工具。本软件也是TCP通讯开发、调试的好助手。好的工具可以达到事半功倍的效果。 相关下载链接:[url=//download.csdn.net/download/guestcode/1547523?utm_source=bbsseo]//download.csdn.net/download/guestcode/1547523?utm_source=bbsseo[/url]
画板的Demo下载
画板Demo 相关下载链接:[url=//download.csdn.net/download/qq_31530015/9487194?utm_source=bbsseo]//download.csdn.net/download/qq_31530015/9487194?utm_source=bbsseo[/url]
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 数据库应用程序 数据库应用程序
我们是很有底线的