当前位置: 首页 > news >正文

网站的回到顶部怎么做好口碑自适应网站建设

网站的回到顶部怎么做,好口碑自适应网站建设,住房和城乡建设部信息中心官网,上海企业登记在线平台模拟IIC通信 IIC 模拟IIC通信底层接口时间控制(通信速度)功能实现对外接口EEPROM相关 底层接口 device是可以用来增加多个IIC设备管理的 void I2C_SET_SCL(unsigned char device, unsigned char bit_value) {bit_value ? MCU_SCL_H() : MCU_SCL_L(); }void I2C_SET_SDA(uns…

模拟IIC通信

IIC

  • 模拟IIC通信
  • 底层接口
  • 时间控制(通信速度)
  • 功能实现
  • 对外接口
  • EEPROM相关

底层接口

device是可以用来增加多个IIC设备管理的

void I2C_SET_SCL(unsigned char device, unsigned char bit_value)
{bit_value ? MCU_SCL_H() : MCU_SCL_L(); 
}void I2C_SET_SDA(unsigned char device, unsigned char bit_value)
{bit_value ? MCU_SDA_H() : MCU_SDA_L();
}void I2C_SDA_OUT(unsigned char device)
{MCU_SDA_OUT(); 
}void I2C_SDA_IN(unsigned char device)
{MCU_SDA_IN(); 
}bool I2C_SDA_DATA(unsigned char device)
{bool boolDat = 0;boolDat = MCU_SDA_DATA();return boolDat;
}

时间控制(通信速度)

void i2c_delay_us(unsigned int us)
{unsigned int i, j;for (i = 0; i <= us; i++){for (j = 0; j <= 20; j++);}
}

功能实现

/* I2C CODE  */
#define i2c_speed_time1 40
#define i2c_speed_time2 20
#define i2c_speed_time3 20void I2C_Start(unsigned char device)
{I2C_SDA_OUT(device);I2C_SET_SDA(device, 1);I2C_SET_SCL(device, 1);i2c_delay_us(i2c_speed_time1);I2C_SET_SDA(device, 0);i2c_delay_us(i2c_speed_time1);I2C_SET_SCL(device, 0);I2C_SET_SCL(device, 0);
}void I2C_Stop(unsigned char device)
{I2C_SDA_OUT(device);I2C_SET_SCL(device, 0);I2C_SET_SDA(device, 0);i2c_delay_us(i2c_speed_time1);I2C_SET_SCL(device, 1);I2C_SET_SDA(device, 1);i2c_delay_us(i2c_speed_time1);
}unsigned char I2C_Wait_Ack(unsigned char device)
{unsigned char ucErrTime = 0;I2C_SDA_IN(device);i2c_delay_us(i2c_speed_time2);I2C_SET_SCL(device, 1);i2c_delay_us(i2c_speed_time2);while(I2C_SDA_DATA(device)){ucErrTime++;if(ucErrTime>250){I2C_Stop(device);return 1;}}I2C_SET_SCL(device, 0);return 0;
}void I2C_Ack(unsigned char device)
{I2C_SET_SCL(device, 0);I2C_SDA_OUT(device);I2C_SET_SDA(device, 0);i2c_delay_us(i2c_speed_time3);I2C_SET_SCL(device, 1);i2c_delay_us(i2c_speed_time3);I2C_SET_SCL(device, 0);
}void I2C_NAck(unsigned char device)
{I2C_SET_SCL(device, 0);I2C_SDA_OUT(device);I2C_SET_SDA(device, 1);i2c_delay_us(i2c_speed_time3);I2C_SET_SCL(device, 1);i2c_delay_us(i2c_speed_time3);I2C_SET_SCL(device, 0);
}void I2C_Send_Byte(unsigned char device, unsigned char txd)
{unsigned char t;I2C_SDA_OUT(device);I2C_SET_SCL(device, 0);for(t=0; t<8; t++){if(txd & 0x80){I2C_SET_SDA(device, 1);}else{I2C_SET_SDA(device, 0);}txd <<= 1;i2c_delay_us(i2c_speed_time3);I2C_SET_SCL(device, 1);i2c_delay_us(i2c_speed_time3);I2C_SET_SCL(device, 0);i2c_delay_us(i2c_speed_time3);}
}unsigned char I2C_Read_Byte(unsigned char device, unsigned char ack)
{unsigned char i,receive=0;I2C_SDA_IN(device);for(i=0; i<8; i++){I2C_SET_SCL(device, 0);i2c_delay_us(i2c_speed_time3);I2C_SET_SCL(device, 1);receive <<= 1;if(I2C_SDA_DATA(device)){receive++;}i2c_delay_us(i2c_speed_time3);}if(!ack){I2C_NAck(device);}else{I2C_Ack(device);}return receive;
}

对外接口

unsigned char i2c_write_byte(unsigned char addr, unsigned char offset, unsigned char len, unsigned char *pdata, unsigned char device)
{unsigned char i;I2C_Start(device);I2C_Send_Byte(device, addr);I2C_Wait_Ack(device);I2C_Send_Byte(device, offset);I2C_Wait_Ack(device);for (i=0; i<len-1; i++){I2C_Send_Byte(device, *pdata);I2C_Wait_Ack(device);pdata++;}I2C_Send_Byte(device, *pdata);I2C_Wait_Ack(device);I2C_Stop(device);return 1;
}unsigned char i2c_read_byte(unsigned char addr, unsigned char offset, unsigned char len, unsigned char *pdata,unsigned char ack,unsigned char device)
{unsigned char i;I2C_Start(device);I2C_Send_Byte(device, addr);I2C_Wait_Ack(device);I2C_Send_Byte(device, offset);I2C_Wait_Ack(device);I2C_Start(device);I2C_Send_Byte(device, addr|0x01);I2C_Wait_Ack(device);for (i=0; i<len-1; i++){*pdata = I2C_Read_Byte(device, ack);pdata++;}*pdata = I2C_Read_Byte(device, 0);I2C_Stop(device);return 1;
}/* 连续读,无应答 */
void I2C_ReadBurst_Ack(unsigned char addr,unsigned char offset,unsigned char len,unsigned char* pdata,unsigned char device)
{i2c_read_byte( addr, offset, len, pdata, 0, device);
}/* 连续读,有应答 */
void I2C_ReadBurst_NAck(unsigned char addr,unsigned char offset,unsigned char len,unsigned char* pdata,unsigned char device)
{i2c_read_byte( addr, offset, len, pdata, 1, device );
}/* 连续写 */
void I2C_WriteBurst(unsigned char addr,unsigned char offset,unsigned char len,unsigned char* pdata,unsigned char device)
{i2c_write_byte( addr, offset, len, pdata, device );
}/* 单个读 */
unsigned char I2C_ReadByte(unsigned char addr, unsigned char offset,unsigned char device)
{unsigned char u8RdData;i2c_read_byte( addr, offset, 1, &u8RdData, 0, device );return u8RdData;
}/* 单个写 */
void I2C_WriteByte(unsigned char addr, unsigned char offset, unsigned char u8Data,unsigned char device)
{i2c_write_byte( addr, offset, 1, &u8Data, device );
}

EEPROM相关

/* EEPROM */
unsigned char EEPROM_ReadByte(unsigned short int addr, unsigned char device)
{unsigned char temp = 0;I2C_Start(device);I2C_Send_Byte(device, 0XA0);I2C_Wait_Ack(device);I2C_Send_Byte(device, addr);I2C_Wait_Ack(device);I2C_Start(device);I2C_Send_Byte(device, 0XA1);I2C_Wait_Ack(device);temp = I2C_Read_Byte(device, 0);I2C_Stop(device);return temp;
}void EEPROM_WriteByte(unsigned char addr, unsigned char dat, unsigned char device)
{i2c_delay_us(2);I2C_Start(device);I2C_Send_Byte(device, 0XA0);I2C_Wait_Ack(device);I2C_Send_Byte(device, addr);I2C_Wait_Ack(device);I2C_Send_Byte(device, dat);I2C_Wait_Ack(device);I2C_Stop(device);delay_ms(5); // 延时
}void EEROM_WriteNByte(const unsigned char *pbuf, unsigned char device)
{int iCurNum, iCur8ByteNum ;for (iCurNum = 0; iCurNum < 32; iCurNum ++ ){I2C_Start(device);I2C_Send_Byte(device, 0XA0);I2C_Wait_Ack(device);I2C_Send_Byte(device, iCurNum * 8);I2C_Wait_Ack(device);for (iCur8ByteNum = 0; iCur8ByteNum < 8; iCur8ByteNum ++){I2C_Send_Byte(device, pbuf[iCurNum * 8+iCur8ByteNum]);I2C_Wait_Ack(device);}I2C_Stop(device);}
}
http://www.yayakq.cn/news/642761/

相关文章:

  • 做网站如何分页郑州住房和城乡建设厅网站
  • 网站建设公司需要具备什么桥梁建设网站
  • 潍坊市建设工程管理处网站免费发布卖房信息平台
  • 学校网站建设平台thinkphp网站后台模板
  • 石家庄规划建设局网站小白node怎么做网站
  • 网站需要多大数据库可拖拽网站
  • 上海奉贤做网站嘉兴网站开发与制作
  • 视频网站开发与制作济南专业做网站的公司
  • 博罗做网站报价网站友情链接很重要吗
  • 网站建设全网推广南海最新军事新闻
  • 表情包制作网站wordpress js代码放哪
  • 南通网络公司网站wordpress提示发布失败但是成功
  • 企业网站博客上如何推广wordpress模板小偷
  • 成都定制网站建设服电影网站推广
  • p2p网站数据分析怎么做开个做网站的公司 知乎
  • 房产网站建设方案一个虚拟主机可以做几个网站
  • 网站选项卡网站建设公司六安
  • 西安谁家的集团门户网站建设比较好广州注册公司无地址怎么办
  • 管理公司网站设计无极在线最新招聘信息兼职
  • 全国免费自学网站有哪些企业运营方案
  • 扬中网站推广服务网站服务器怎么进
  • 个人摄影作品网站网站权重问题
  • 哪一个军事网站做的比较好html做电商网站
  • 网站模块建设中wordpress自动发布插件
  • 南京建设局的网站首页icp网站负责人
  • 常见的网站推广方案wordpress多主题插件下载地址
  • 杭州做网站哪个公司好做网站 万户
  • 山西省建设监理官方网站aso搜索优化
  • 通过模版做网站网站开发培训培训班
  • 网站建设 中企动力南通31省份新增本土427 1662