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

怎么搭建个人网站电脑做服务器吴江市中云建设监理有限公司网站

怎么搭建个人网站电脑做服务器,吴江市中云建设监理有限公司网站,包图网免费素材图库官网,桂林市中考信息网官网目录 一、IIC协议基本原理 1.IIC协议概述 2.时序图分析 二、代码分析 1.IIC初始化 2.IIC起始信号 3.IIC发送数据 4.获取应答信号 5.读一个字节 6.产生ACK应答 7.不产生ACK应答 IIC#xff08;Inter-Integrated Circuit#xff09;在嵌入式系统中是一种常见的数据通…目录 一、IIC协议基本原理 1.IIC协议概述 2.时序图分析 二、代码分析 1.IIC初始化 2.IIC起始信号 3.IIC发送数据 4.获取应答信号 5.读一个字节 6.产生ACK应答 7.不产生ACK应答 IICInter-Integrated Circuit在嵌入式系统中是一种常见的数据通信接口日常工作中许多传感器都是基于IIC来传输数据的所以掌握这个接口对我们来说非常重要。 一、IIC协议基本原理 1.IIC协议概述 IIC也被称为I2C和I²C硬件方面由于存在专利所以日常中我们常以两个IO口用软件模拟IIC来使用。IIC串行总线有两根信号线数据线SDA和时钟线SCL。IIC总线上的设备通过地址进行区分不同种类的设备地址不同。只要不超过IIC总线上的电容限制一般不超过400pf就可以连接任意数量的从机在通信时刻只能有一个作为主机其他的都为从机。高速IIC总线一般可达400kbps以上。 2.时序图分析 SCL为时钟线SDA为数据线SCL和SDA默认都是高电平两条线相互配合会产生三种信号构成时序。 开始信号SCL 为高电平时SDA 由高电平向低电平跳变。结束信号SCL 为高电平时SDA 由低电平向高电平跳变。应答信号接收数据的设备在接收到 8位 数据后向发送数据的设备发出特定的低电平表示已收到数据。主机设备向从机设备发出一个信号后等待从机设备发出一个应答信号主机设备接收到应答信号后根据实际情况作出是否继续传递信号。若未收到应答信号由判断为受控单元出现故障。 IIC在开始信号发出后开始发送数据数据以8位传输SCL高电平的时候SDA读到的数据有效然后经历8位数据传输以后第九次检测应答信号如果检测到从机将SDA置为低电平说明从机设备有应答ACK如果保持高电平说明从机设备没有应答NACK。 二、代码分析 本文基于STM32F429的HAL库为例讲解IIC的使用,定义宏参数如下图所示 1.IIC初始化 void IIC_Init(void) {GPIO_InitTypeDef GPIO_Initure;__HAL_RCC_GPIOH_CLK_ENABLE(); //使能GPIOH时钟//PH4,5初始化设置GPIO_Initure.PinGPIO_PIN_4|GPIO_PIN_5;GPIO_Initure.ModeGPIO_MODE_OUTPUT_PP; //推挽输出GPIO_Initure.PullGPIO_PULLUP; //上拉GPIO_Initure.SpeedGPIO_SPEED_FAST; //快速HAL_GPIO_Init(GPIOH,GPIO_Initure);IIC_SDA1;IIC_SCL1; } 初始化IIC使能PH4PH5推挽输出、上拉、快速然后又将SDA和SCL拉高。 2.IIC起始信号 void IIC_Start(void) {SDA_OUT(); //sda线输出IIC_SDA1; IIC_SCL1;delay_us(4);IIC_SDA0;//拉低电平delay_us(4);IIC_SCL0;//钳住I2C总线准备发送或接收数据 } 在SDA和SCL高电平的同时将SDA拉低产生一个下降沿。 3.IIC发送数据 void IIC_Send_Byte(u8 txd) { u8 t; SDA_OUT(); IIC_SCL0;//拉低时钟开始数据传输for(t0;t8;t){ IIC_SDA(txd0x80)7;txd1; delay_us(2);IIC_SCL1;delay_us(2); IIC_SCL0; delay_us(2);} } 切换SDA为输出模式拉低SCL电平依次发送8位数据 每次写好SDA位的时候将SCL拉高后等待2us再拉低。 4.获取应答信号 //返回值1接收应答失败 // 0接收应答成功 u8 IIC_Wait_Ack(void) {u8 ucErrTime0;SDA_IN(); //SDA设置为输入 IIC_SDA1;delay_us(1); IIC_SCL1;delay_us(1); while(READ_SDA){ucErrTime;if(ucErrTime250){IIC_Stop();return 1;}}IIC_SCL0;//时钟输出0 return 0; } 将SDA设置为输入模式将SDA和SCL拉高如果SDA在规定时间内依然是拉高的状态说明从机没有应答反之则说明从机应答。 5.读一个字节 读1个字节ack1时发送ACKack0发送nACK u8 IIC_Read_Byte(unsigned char ack) {unsigned char i,receive0;SDA_IN();//SDA设置为输入for(i0;i8;i ){IIC_SCL0; delay_us(2);IIC_SCL1;receive1;if(READ_SDA)receive; delay_us(1); } if (!ack)IIC_NAck();//发送nACKelseIIC_Ack(); //发送ACK return receive; }读取数据的时候先将SDA设置成输入然后依次拉低拉高SCL 8次读取8位数据如果还想继续读取就产生ACK应答如果不想继续读取了就产生nACK应答。 6.产生ACK应答 void IIC_Ack(void) {IIC_SCL0;SDA_OUT();IIC_SDA0;delay_us(2);IIC_SCL1;delay_us(2);IIC_SCL0; } 先将SCL拉低然后改SDA为输出模式拉低SDA后拉高SCL后再拉低。 7.不产生ACK应答 //不产生ACK应答 void IIC_NAck(void) {IIC_SCL0;SDA_OUT();IIC_SDA1;delay_us(2);IIC_SCL1;delay_us(2);IIC_SCL0; } 先将SCL拉低然后改SDA为输出模式拉高SDA后拉高SCL后再拉低就可以告诉从机不再继续读取数据。 总体来说IIC的通讯只用到了SCL时钟线和SDA数据线两条线实现起来还是比较简单的希望本文能帮助你理解IIC如何使用。
http://www.hkea.cn/news/14561451/

相关文章:

  • 网站后台ftp替换图片怎么做企业安全文化建设论文
  • 渭南网站建设费用明细怎么备案网站
  • 个人网站怎么做收款链接商城网站备案流程
  • 百怎么做网站信用中国 网站有那个部门支持建设
  • 江苏 网站备案建设工程服务中心是做什么的
  • 做饮食网站怎么样哪里有做证
  • 网站图片如何做链接设计类专业大学排名
  • ih5平台发展前景辛集seo网站优化电话
  • 酷站网wordpress related posts 汉化
  • 深圳建设局网站查询怎么用网站做word文件格式
  • 基于.net平台网站内容管理系统研究与实现如何建设手机网站首页
  • 怎样向网站上传照片网站建设科
  • 西安网络技术有限公司网站东莞seo建站咨询
  • 怎么免费做一个网站做淘宝客哪个公司做农村产权交易网站
  • 生鲜电商网站建设建设网站 (公司)
  • 网站开发模板教程个人做电子商务网站
  • 商城网站 前置审批网站cms系统哪个好用吗
  • 做兼职的设计网站有哪些工作内容中国建设银行网上登录入口
  • 服务器架设国外做违法网站wordpress编辑器分段
  • 邢台网站建设哪家专业做网站用什么
  • 深圳智能响应网站建设织梦模板国外网站
  • 重新建设网站的报告怎么学做网站跟聊天软件
  • 网站开发 法律汇源企业网络营销策划
  • 单页网站如何制作烈焰传奇网页版
  • 自己做网站赚钱灰色关键词排名优化
  • 容城县网站开发游戏ui设计需要学什么软件
  • 上海网站建设网页制作邢台濮阳信息港
  • 网站建设与管理专业人才调研网站备案提示
  • 网站推广 知乎台州电子商务网站建设
  • 网站建设策划书目录wordpress电影主题会员