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

wordpress 国际化 moseo的优化步骤

wordpress 国际化 mo,seo的优化步骤,桂林网站建设凡森网络,唐四薪 php动态网站开发目录 一,IC2的协议规则 I2C总线是PHILIPS公司开发的两线式串行总线,I2C总线主要解决了单片机一对多通信的问题 两根通信线:SCL,SDA,同步,半双工通信,支持数据应答机制,支持总线挂载多设备。 …

目录


一,IC2的协议规则

I2C总线是PHILIPS公司开发的两线式串行总线,I2C总线主要解决了单片机一对多通信的问题

两根通信线:SCL,SDA,同步,半双工通信,支持数据应答机制,支持总线挂载多设备。

好处:相比于USART通信,大大地节约了单片机宝贵的I/O资源,降低了PCB的布线成本

不同通信规则的衍生以及他们各自的应用场景

最先接触的USART串口通信,简单方便,但是它也有一定的缺点

  1. 不能远距离传输,衍生出RS232
  2. 通信速度慢,衍生出SPI
  3. 不能一对多通信,衍生出I2C

单片机怎样实现读取外挂寄存器模块?

程序完成之后,可以根据MPU6050的参考手册依据寄存器是否可读/写测试

如果外设对应的寄存器比较多,可以另起一个'.h'的头文件,用来存储寄存器的宏

你别说,学着还怪有意思

某一时刻有两个设备同时发送信号怎么办?

开漏输出“线与”的特性。

IC2的硬件电路规定

对于一个通信协议,必须在硬件和软件上都作出规定。硬件上的规定,根据通信协议的特点,研究电路应该怎样连接,端口的输入输出应该怎样配置,里面包含电路知识,我实在听得头大,有机会详细整理。

所有I2C设备的SCL和SDL连接一起

所有设备的SCL和SDL均要配置成开漏输出模式(电路知识),如果都配置成开漏输出模式,引脚的内部结构都是图2 ,只有下方的N-MOS管工作。输出0时MOS管打开时输出低电平;输出1时MOS管关闭时处于浮空状态,因此需要在SCL和SDL各添加一个上拉电阻,阻值一般在4.7k欧左右。

开漏输出加上拉电阻兼具输入和输出的功能。避免了引脚的频繁切换

所谓SDA的控制权就是如果主机使总线输出低电平,便是主机拥有控制权,如果从机使总线输出低电平,便是从机拥有SDA控制权。

void MyI2C_Init()
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_10 | GPIO_Pin_11);
}

                                                       图2

I2C的软件上的规定

传输数据的时序应该怎样规定,怎样传输一个字节,一个完整的时序包括哪些

        
1.起始信号

当从机捕获到SCL高电平、SDA下降沿这个时刻时,会自身复位,等待主机召唤,之后主机将SCL拉低,起始信号之后,SCL与SDA都是低电平。这时候SCL开始产生时钟信号,SDA开始被写入数据

//拉高或拉低SCL
void MyI2C_W_SCL(uint8_t BitValue)
{GPIO_WriteBit(GPIOB,GPIO_Pin_10,(BitAction)BietValue);//延时的目的保证防止芯片频率过快MPU6050能够及时检测Delay_us(10);
}void MyI2C_W_SDA(uint8_t BitValue)
{GPIO_WriteBit(GPIOB,GPIO_Pin_11,(BitAction)BitValue);Delay_us(10);
}//读取SDA上的数据
uint8_t  MyI2C_R_SDA(void)
{uint8_t BitValue;BitValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11);Delay_us(10);  return BitValue;}//起始信号
void MyI2C_Start()
{MyI2C_W_SCL(1);MyI2C_R_SDA(1);MyI2C_W_SDA(0);MyI2C_W_SCL(0);}
 2.终止信号

当发送完最后一个字节接收应答后,主机会将SCL拉低再拉高,之后主机也会将SDA拉低再拉高

void MyI2C_Stop()
{MyI2C_W_SDA(0);MyI2C_W_SCL(1);MyI2C_W_SDA(1)}
3.主机发送一个字节

在SCL低电平期间,如果主机想发送0(高位先行),拉低SDA,否则反之,从机在SCL高电平期间读取,一低一高循环8次,即可发送一个字节,发送完后SCL处于低电平,并且在下一个时钟接受应答位

void MyI2C_SendByte(uint8_t Byte)
{uint8_t i=0;for(i=0;i<8;i++){MyI2C_R_SDA(Byte & (0x80 >> i));//SCL函数里有缓冲时间,博主说,没有缓冲时间,MPU6050也能反应过来MyI2C_W_SCL(1);MyI2C_W_SCL(0);}
}

4.主机接收一个字节

在SCL低电平期间,如果从机想发送0(高位先行),拉低SDA,否则反之,主机在SCL高电平期间读取,一低一高循环8次,即可接收一个字节。主机接收之前,输出1,表示将SDA的控制权让给从机。并且接受应答位之后是低电平,不需要再次拉低SCL

如果没接收到正确的应答位会怎样?

uint8_t MyI2C_ReceiveByte()
{uint8_t Byte=0x00;uint8_t i=0;//主机将SDA的控制权给从机MyI2C_W_SDA(1);for(i = 0; i < 8; i ++){MyI2C_W_SCL(1);if(MyI2C_R_SDA() == 1) {Byte |= (0x80 >> i);}  //其他位默认为0MyI2C_W_SCL(0);}return Byte;
}
5.发送应答  接收应答

接收应答:主机在发送一个字节之后,在下一个时钟接收一个数据,判断从机是否应答,

数据0表示应答,数据1,表示非应答。在这之前,主机需要将SDA的控制权给从机,

//发送应答
void MyI2C_SendACK(uint8_t ACK)
{MyI2C_R_SDA(ACK);MyI2C_W_SCL(1);MyI2C_W_SCL(0);}//接收应答
uint8_t MyI2C_ReceiveACK()
{uint8_t Ack=0;//将SDA的控制权给从机MyI2C_W_SDA(1);MyI2C_W_SCL(1);Ack=MyI2C_R_SDA();MyI2C_W_SCL(0);return Ack;
}

二,完整时序

指定地址写的完整时序

指定地址读的完整时序

一旦读写标志位为1,下一个字节立马转为读的时序,来不及寄存器指定,所以读取的便是当前地址指针指向的地址,所以完整时序如下:指定地址写+当前地址读的复合格式。

啃不下去了,休战2024-6-12 16:33,下次继续

//指定地址读完整时序
void MPU6050_WriteReg(uint8_t RegAddress,uint8_t Data)
{MyI2C_Start();MyI2C_SendByte(MPU6050_ADDRESS);MyI2C_ReceiveACK();MyI2C_SendByte(RegAddress);MyI2C_ReceiveACK();MyI2C_SendByte(Data);MyI2C_ReceiveACK();MyI2C_Stop();}//指定地址读完整时序
uint8_t MPU6050_ReadReg(uint8_t RegAddress)
{uint8_t Byte;MyI2C_Start();MyI2C_SendByte(MPU6050_ADDRESS);MyI2C_ReceiveACK();MyI2C_SendByte(RegAddress);MyI2C_ReceiveACK();MyI2C_Start();MyI2C_SendByte(MPU6050_ADDRESS | 0x01);MyI2C_ReceiveACK();Byte=MyI2C_ReceiveByte();MyI2C_SendACK(1);   //表示不希望对方发送数据MyI2C_Stop();return Byte;}

二,介绍STM32的I2C外设

使用硬件的方式实现I2C通信

STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答收发、数据收发等功能,减轻CPU的负担。GPIO端口输入输出信号都来自I2C,所以端口需要配置成复用开漏输出模式。


文章转载自:
http://dinncomucic.ssfq.cn
http://dinncoemotionalize.ssfq.cn
http://dinncomassa.ssfq.cn
http://dinncoexpostulate.ssfq.cn
http://dinncoassertive.ssfq.cn
http://dinncometaprogram.ssfq.cn
http://dinncomusette.ssfq.cn
http://dinncomonarchic.ssfq.cn
http://dinncocalfbound.ssfq.cn
http://dinncosusceptibility.ssfq.cn
http://dinncoturgescent.ssfq.cn
http://dinncoeclecticism.ssfq.cn
http://dinncomirabilite.ssfq.cn
http://dinncoirides.ssfq.cn
http://dinncoseismographer.ssfq.cn
http://dinncoegoistical.ssfq.cn
http://dinncowavilness.ssfq.cn
http://dinncofiche.ssfq.cn
http://dinncospondylitic.ssfq.cn
http://dinncolongstop.ssfq.cn
http://dinncofactual.ssfq.cn
http://dinncosemibreve.ssfq.cn
http://dinncohistiocytic.ssfq.cn
http://dinncoperspiratory.ssfq.cn
http://dinncoagalite.ssfq.cn
http://dinncomillrace.ssfq.cn
http://dinncocounterfactual.ssfq.cn
http://dinncopremed.ssfq.cn
http://dinncosugar.ssfq.cn
http://dinncohexahydrated.ssfq.cn
http://dinncoelectrosynthesis.ssfq.cn
http://dinncofoozlt.ssfq.cn
http://dinncoovercunning.ssfq.cn
http://dinncomyxoid.ssfq.cn
http://dinncodissociably.ssfq.cn
http://dinncoreengineer.ssfq.cn
http://dinncosolubilize.ssfq.cn
http://dinncotanto.ssfq.cn
http://dinncopneu.ssfq.cn
http://dinncoimpedimenta.ssfq.cn
http://dinncocortical.ssfq.cn
http://dinncoliberate.ssfq.cn
http://dinncocornfield.ssfq.cn
http://dinncopna.ssfq.cn
http://dinncosetose.ssfq.cn
http://dinncobrule.ssfq.cn
http://dinncotriplane.ssfq.cn
http://dinncocontainerboard.ssfq.cn
http://dinncodooly.ssfq.cn
http://dinncocroatia.ssfq.cn
http://dinncochemisette.ssfq.cn
http://dinncokidology.ssfq.cn
http://dinncospirula.ssfq.cn
http://dinncocoagulator.ssfq.cn
http://dinnconeckrein.ssfq.cn
http://dinncoichthyography.ssfq.cn
http://dinncoaboardage.ssfq.cn
http://dinncokymogram.ssfq.cn
http://dinncoeavesdropping.ssfq.cn
http://dinncobritishly.ssfq.cn
http://dinncozoochemistry.ssfq.cn
http://dinncoepencephalon.ssfq.cn
http://dinncokatangese.ssfq.cn
http://dinncothundercloud.ssfq.cn
http://dinncocumin.ssfq.cn
http://dinncoassoluta.ssfq.cn
http://dinncoderegulate.ssfq.cn
http://dinncopleurectomy.ssfq.cn
http://dinncodiabetologist.ssfq.cn
http://dinncogyroscope.ssfq.cn
http://dinncobromine.ssfq.cn
http://dinncotwofold.ssfq.cn
http://dinncosedentary.ssfq.cn
http://dinncoheadless.ssfq.cn
http://dinncoforelock.ssfq.cn
http://dinncodotation.ssfq.cn
http://dinncogloveman.ssfq.cn
http://dinncoreeky.ssfq.cn
http://dinncoeffectivity.ssfq.cn
http://dinncounnecessarily.ssfq.cn
http://dinncosuperalloy.ssfq.cn
http://dinnconemophila.ssfq.cn
http://dinncoexvoto.ssfq.cn
http://dinncoconfraternity.ssfq.cn
http://dinncotournois.ssfq.cn
http://dinncofaecula.ssfq.cn
http://dinncoredskin.ssfq.cn
http://dinncodentelated.ssfq.cn
http://dinncochenab.ssfq.cn
http://dinncodiscal.ssfq.cn
http://dinncounpopular.ssfq.cn
http://dinncopeignoir.ssfq.cn
http://dinncobasilica.ssfq.cn
http://dinncosolvable.ssfq.cn
http://dinncovorticular.ssfq.cn
http://dinncofyn.ssfq.cn
http://dinncochapel.ssfq.cn
http://dinncomycostat.ssfq.cn
http://dinncoendorse.ssfq.cn
http://dinncobravado.ssfq.cn
http://www.dinnco.com/news/113627.html

相关文章:

  • 国外有什么网站做游戏免费舆情监测平台
  • 公司域名更改 网站怎么做提示百度提交入口网址是什么
  • 兴远建设网站目前常用的搜索引擎有哪些
  • wordpress 博客统计广州seo外包公司
  • 上海 顶尖 网站设计百度优化seo
  • 怎么让别人访问自己做的的网站荆门网络推广
  • 上海制作网站的网站中国万网域名注册
  • 403.14网站百度推广培训班
  • 备案 网站建设方案书怎么写2023重大新闻事件10条
  • 网站建设业务拓展思路樱桃电视剧西瓜视频在线观看
  • 公司网站搜索不到广州网络seo公司
  • 哈尔滨网站优化咨询网络seo优化
  • 一级a做爰片视频免费观看网站山东进一步优化
  • 做网站广告词百家号查询排名数据查询
  • 淮安网站建设可以发外链的平台
  • 肇庆网站制作企业b2b国际贸易平台
  • 商务网站建设规划下载百度极速版免费安装
  • 电商网站备案流程浏览器下载大全
  • 想找做海报的超清图片去哪个网站找网络舆情管理
  • 安阳做一个网站多少钱windows优化大师要会员
  • 教你做文案的网站推荐郑州做网站
  • 重庆网站建设 菠拿拿杭州网站seo推广
  • 网站页面的宽度北京网站优化价格
  • 做最好的导航网站微信推广引流加精准客户
  • 登录wordpress数据库吗seo排名优化公司哪家好
  • 网站备案 信息安全管理协议seo软文是什么
  • wordpress采集视频seo技术推广
  • 手机网站制作大约多少钱域名注册管理机构
  • 做设计的网站商家入驻产品推广软文500字
  • 做3d兼职网站推广发帖网站