I2C_delay(); #else _OUT();//sda输出 _SCL=0; IICSDA=0;/STOP:when CLKis highDATA change lowto high Delayus(I2CDelayus); IIC_SCL=1; IIC_SDA=1;/发送IIC总线结束信号 Delay_us(I2C_Delayus); #endif } /*** *
voidi2c_scl(structi2c *i2c,intbit) { gpio_direction_output(i2c->scl, bit); } data动作函数 这里需要注意的是,当i2c master想要让data为高,是把data的gpio设置为输入,这是因为SCL和SDA都是默认硬件上拉的。同时也是为了master写完数据以后去获取ACK。 voidi2c_sda(structi2c *i2c,intbit) {if(bit) { ...
STM32用GPIO模拟IIC(I2C)通讯C语言源码 实测可用
1、linux gpio 模拟 i2c 的使用用 GPIO 模拟 I2C 总线这个结构专门用于数据传输相关的 addr 为 I2C 设备地 址, flags 为一些标志位, len 为数据的长度, buf 为数据。 这里宏定义的一些标志还是需要了解一下。I2C_M_TEN 表示 10 位设备地址I2C_M_RD 读标志I2C_M_NOSTART 无起始信号标志I2C_M_IGNORE_NAK...
I2C_SDA = P1^1; //控制24c02的SDA引脚 sbit I2C_SCL = P1^2; //控制24c02的SCL引脚 void I2C_Delay10us()//IIC协议所需:延迟10us函数 { uchar a, b; for(b=1; b>0; b--) { for(a=2; a>0; a--); } } void I2C_Start() //开始启动IIC,IIC协议头 { I2C_SDA = 1; I2C_...
来看这个具体的i2c_outb函数 [html] view plaincopyprint? 1.1. static int i2c_outb(struct i2c_adapter *i2c_adap, unsigned char c) 2.2. { 3.3. int i; 4.4. int sb; 5.5. int ack; 6.6. struct i2c_algo_bit_data *adap=i2c_adap->algo_data;...
② DCode 总线:该总线将 M3 内核的 DCode 总线与闪存存储器的数据接口相连接,常量加载和调试访问在该总线上面完成。 ③系统总线:该总线连接 M3 内核的系统总线到总线矩阵,总线矩阵协调内核和 DMA 间访问。 ④ DMA 总线:该总线将 DMA 的 AHB 主控接口与总线矩阵相连,总线矩阵协调CPU的DCode 和 DMA 到 SRAM,...
在Windows 10 及更新版本中,API 提供從使用者模式到通用輸入/輸出(GPIO)、內部整合電路 (I2C)、序列周邊介面 (SPI) 和通用非同步收發傳輸器 (UART) 的直接存取權。 Raspberry Pi 2 等開發板公開了這些連接的子集,使您能夠使用自訂電路擴充基本運算模組,以解決特定應用程式的問題。 這些低階匯流排通常與其他關鍵...
Windows下I2C总线的GPIO模拟.doc,Windows下I2C总线的GPIO模拟 摘要:简要介绍了I2C总线操作和基于Windows内核模式驱动的用户态I/O端口访问,分析了Windows平台下GPIO管脚模拟I2C总线的可行性,讲解了编程实现过程,连接I2C接口的安全芯片进行了验证。 关键词:I2C总线;GPIO
View Code .c View Code 6、中断 View Code 7、Sensor参数 View Code 8、总结: (1)、USART配置时,RX和TX脚都设置为复用模式GPIO_Mode_AF,TX设置为推挽输出,RX设置为开漏,并都上拉。 (2)、I2C配置时,由于是用GPIO 模拟I2C,所以都设置为开漏、无上拉(SCL和SDA都外接了上拉4.7K的电阻)、输出模式,注意...