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

手机企业网站推广c 手机app开发

手机企业网站推广,c 手机app开发,网站使用帮助内容,百度游戏中心官网死锁的复现方式 在I2C恢复函数下个断点#xff08;检测到I2C多次超时之后#xff0c;应该能跳转到I2C恢复函数#xff09;使用镊子#xff0c;将SCL与SDA短接#xff0c;很快就能看到程序停到恢复函数的断点上#xff0c;此时再执行恢复函数#xff0c;看能否正常走出检测到I2C多次超时之后应该能跳转到I2C恢复函数使用镊子将SCL与SDA短接很快就能看到程序停到恢复函数的断点上此时再执行恢复函数看能否正常走出可在回复函数中写个死循环只有I2C正常才跳出检测I2C正常的办法可以读从设备的ID void HAL_I2C_MspInit(I2C_HandleTypeDef *i2cHandle) {GPIO_InitTypeDef GPIO_InitStruct {0};if (i2cHandle-Instance I2C1){/* USER CODE BEGIN I2C1_MspInit 0 *//* USER CODE END I2C1_MspInit 0 */__HAL_RCC_GPIOB_CLK_ENABLE();GPIO_InitStruct.Pin GPIO_PIN_6 | GPIO_PIN_7;GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_OD;GPIO_InitStruct.Pull GPIO_NOPULL;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOB, GPIO_InitStruct);for (int i 0; i 10; i){HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);HAL_Delay(1);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);HAL_Delay(1);}HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET);HAL_Delay(1);i2cHandle-Instance-CR1 | I2C_CR1_SWRST; //复位I2C控制器HAL_Delay(1);i2cHandle-Instance-CR1 0; //解除复位不会自动清除/**I2C1 GPIO Configuration PB6 ------ I2C1_SCLPB7 ------ I2C1_SDA */GPIO_InitStruct.Pin GPIO_PIN_6 | GPIO_PIN_7;GPIO_InitStruct.Mode GPIO_MODE_AF_OD;GPIO_InitStruct.Pull GPIO_PULLUP;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate GPIO_AF4_I2C1;HAL_GPIO_Init(GPIOB, GPIO_InitStruct);/* I2C1 clock enable */__HAL_RCC_I2C1_CLK_ENABLE();/* USER CODE BEGIN I2C1_MspInit 1 *//* USER CODE END I2C1_MspInit 1 */} }/* USER CODE BEGIN 1 */ void I2C_Reset() {HAL_I2C_MspDeInit(hi2c1);hi2c1.State HAL_I2C_STATE_RESET;MX_I2C1_Init();// 硬件i2c会出现死锁当超时次数达到一定数量即很有可能是发生了死锁// 所谓死锁是指主机与从机互相等待主机以为总线在从机手上控制从机以为总线在主机手上控制一直再等待对方释放总线 }死锁的解决方法 释放IO口为GPIO复位句柄状态标志改为IO方式将SDA改为高电平 将SCK发送9个时钟  为高电平时测试SDA是否为低电平完成死锁。 通过模拟几种情形来实际体会一下从机对SDA的操作红色表示 如果在地址字节第9个CLK拉高后主机复位。在模拟的第一个时钟低电平期间就可以看到SDA的释放随后主机先拉低SDA再模拟一个STOP结束条件。 在数据字节第2个CLK拉高后主机复位在第二个模拟的时钟低电平期间才看到SDA释放 在数据字节第6个CLK拉高后主机复位在第三个模拟的时钟低电平期间才看到SDA释放 通过以上三种情况的分析想必你已经非常清楚改如何处理了最后附上一个程序处理流程图 SCL挂死 I2C从机主动拉低SCL线在规范中是一个合法的行为称之为Clock Stretching时钟扩展我一般叫他时钟同步。通常是主机请求数据 收或者发后从机需要一些时间处理且没有多余Buffer可以接收接或者提供接下来的数据的时候从机则会拉低SCL一段时间直到有新的数据准备好。 SCL挂死也就是前面所说一直拉低SCL这种情况在标准I2C从器件上基本不会出现因为只要芯片还在正常工作buffer总算有准备好的时候自然就就释放SCL了。往往是使用用户使用MCU作为I2C从机时程序设计上的问题导致MCU无法读取填充buffer而导致重点分析MCU I2C中断服务程序。 I2C中断服务程序被意外屏蔽中断服务程序中陷入了一些标志位查询的while(flag ! xxx)死循环I2C功能系统被意外禁止
http://www.w-s-a.com/news/876915/

相关文章:

  • 网站建设需要多少天凡客建设网站稳定吗
  • 房天下网站建设女生说wap是什么意思
  • 网站开发安全机制北京做网站多少钱合理
  • 扁平化 公司网站建设大型视频网站需要的资金量
  • 免费建各种网站淄博网站建设yx718
  • 凡科网建站入门教程运城市网站建设
  • 黄浦区未成年人思想道德建设网站oa系统是什么
  • 微信里的网站怎么做电子商务网站开发平台
  • 易企秀网站怎么做轮播图网站建设张世勇
  • 网站备案幕布尺寸建立网页的几个步骤
  • pc网站页面找出网站所有死链接
  • 专业做seo的网站网站内连接
  • 阿里云网站开发服务器想开网站建设公司
  • 网站开发不足之处茶叶seo网站推广与优化方案
  • 响应式网站建设系统网站优化怎么做 有什么技巧
  • 班级网站做哪些方面wordpress标签 扩展
  • 如何在电商上购物网站Wordpress 域名授权插件
  • 网站建设后台怎么弄昆明如何做好关键词推广
  • 自己怎么做个网站优酷视频网站开发
  • 2015做网站前景电子商务营销的发展现状
  • 官方网站建设情况说明电子商务网站开发的形式有
  • 网站建设玖金手指排名11专业建站公司建站系统
  • 全球排名前十网站百度网站官网网址
  • 商家在携程旅游网站怎样做宣传做网站公司苏州
  • 芜湖做网站都有哪些广州音乐制作公司
  • 青岛好的网站制作推广注册公司流程步骤
  • 怎么制作营销网站模板wordpress苗木模板
  • 手机网站样例wordpress 排序
  • 济南网站建设手机网站开发人员需要去做原型吗
  • 动易网站模板下载微信支付 wordpress