IIC踩过的坑

读取IT8563WE时,读取第一次正确,第二次错误,第三次正确,第四次错误。。。。。。

看到读取成功之后,SDA信号没有被正确拉高,电平大概只有一半。

再次读取,主机设置读模式时,从机会发送NACK,会将电平拉高。这样第三次读取时,SDA和SCL数据信号线都是高电平。

注意:当第一次读取完毕,SDA没有被完全拉高是,直接将VCC接入SDA脚,SDA仍然不能恢复电平最高,应该是IT8563WE的问题。

临时解决办法:

读取成功后,再次读取,在主机设置读模式时,从机会发送NACK,会将电平拉高

过一段时间再次修改找到根本原因

读取最后一个字节应该是NACk的回包

原来代码

修改之后

读过程

波形图,发送NACK后,再发送STOP,电平恢复高电平

开源地址:

https://github.com/strongercjd/STM32F207VCT6

(提示:公众号不支持外链接,请复制链接到浏览器下载)

推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1万字30张图说清TCP协议

本篇文章较长,大家先看下目录1、简介2、TCP协议头3、TCP 数据包的编号(SEQ)4、三次握手建立连接5、四次挥手断开连接6、TCP可靠性的保证7、滑动窗口技术9、窗口滑动的数据重发9、TCP 流控制10、网线“断”了怎么办01简介TCP(Transmission Con…

Spring源码解析(二)BeanDefinition的Resource定位

IOC容器的初始化过程主要包括BeanDefinition的Resource定位、载入和注册。在实际项目中我们基本上操作的都是ApplicationContex的实现,我们比较熟悉的ClassPathXmlApplicationContext、FileSystemXmlApplicationContext、XmlWebapplicationContext等。ApplicationCo…

单片机(MCU)如何才能不死机之对齐访问(Aligned Access)

从一个结构体说起。如下,在 STM32F0 的程序中,我们定义了一个结构体My_Struct ,那么这个结构体占用多少内存呢?struct Struct_Def { uint8_t Var_B; uint16_t Var_W0; uint16_t Var_W1; uint32_t Var_DW; }; struct Struct_Def My…

小米的隔空充电,看起来好酷

昨天是1月29号,昨天小米发布了一个隔空充电技术,很火爆,大胆想,如果有一条无线充电的高速公路,那电动汽车还担心没有电吗?—— 雷总的微博原文隔空充电技术:如科幻电影一般,拿着手机…

同事用void把我给秀翻了!

1、聊一聊今天跟大家推荐的这首歌最近应该挺火的,不过没办法插入AGA的原版歌曲,大家觉得不错可以去找找原版歌曲收录一下。昨天建立了"最后一个bug"技术交流群,由于群成员超过200就无法直接通过群二维码加入,如果大家想加入扫描下面…

Spring Boot之自定义属性

选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我想大多数人也是出于这个原因选择了Spring Boot,如果不是特殊应用场景,就只需要在application.properties中完成一些属性配置就能开启各模块的应用。而不像传统的XML配…

一个老工程师的工作经历和思考

在这里不敢以”资深”工程师自居,因为学历和技术水平确实一般。为什么说“老”呢?因为工作时间确实够长,已经接近20年。下面把自身工作和学习经历和大家分享一下,使初学者能够得到一些有用的东西。2000年毕业,机械电子…

电子工程师都在看什么?送你一份“修炼宝典”

现如今,形形色色的公众号如繁星一般让人眼花缭乱。近几年科技的飞速发展,让更多人开始关注科技,甚至成为极客。然而学习是永无止境的,如何才能追赶如此高速的发展?曾经,我也是不知道去看哪些,便…

DataCleaner(4.5)第一章

Part1. Introduction to DataCleaner  介绍DataCleaner |--What is data quality(DQ)  数据质量?|--What is data profiling?   数据分析?|--What is datastore?     数据存储?   Composite datastore   综合性数据存储 |…

约瑟夫斯问题-java版数组解法和链表解法

10个人围成一圈,从1到10编号,从1开始数,数到3或3的倍数的位置,则该位置的人出局,求最后剩下哪一个号? 数组解法: 数组存放数组:a[10]存在1到10编号人 数组遍历到尾部又从头遍历&…

少写点if-else吧,它的效率有多低你知道吗?

# 干了这碗鸡汤我要再和生活死磕几年。要么我就毁灭,要么我就注定铸就辉煌。如果有一天,你发现我在平庸面前低了头,请向我开炮。--杰克凯鲁亚克if-else涉及到分支预测的概念,关于分支预测上篇文章《虚函数真的就那么慢吗&#xff…

为什么不能在中断上半部休眠?

这是一个老生常谈的问题。我们先简单说下什么是中断「因为最近在群里看到有人竟然不懂什么是中断」。中断是计算机里面非常核心的东西,我们可以跑OS,可以多任务运行都因为中断的存在。假设你是一个CPU,你正在睡觉。你突然觉得肚子疼&#xff…

j.u.c系列(08)---之并发工具类:CountDownLatch

写在前面 CountDownLatch所描述的是”在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待“:用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受…

巧用1个GPIO控制2个LED显示4种状态

很多电子产品有状态指示灯,比如电视机:待机状态亮红灯开机状态亮绿灯实现起来很简单,微控制器MCU的两个GPIO分别控制就行:不过资源总是紧张的,有时候会碰到GPIO不够用的情况。如果只用1个GPIO,可不可以实现…

大大大大数怎么求余?C语言

问题:一个特别大的数除以23求余数用C语言应该怎么算啊?比如23232323232323232323232323232323232323232323232323232323233除以23,怎么算余数?数据类型在计算机的存储是有大小限制的,所以才出现了大数求余这种问题&…

程序员因拒绝带电脑回家工作被开除!获赔19.4万元

近日,男子拒绝春节带电脑回家工作被开除的消息,成为了不少网友关注的焦点,引发网友共鸣。因为春节拒绝带工作电脑回家被开除,上海一位软件工程师起诉公司获赔19.4万元。2月2日,据上海浦东法院公众号消息,该…

随便写写(5)

也许是今年发生的事情太多了,所以比以前要更关注时事,虽然面对一些既成的事实,难免要进行痛心的思考。 昨天晚上关注了一下东方卫视播出的9.8特大尾矿库溃坝事故的后续报道,这起特大人为事故已经得到了认定,相关的责任…

利用C语言中的setjmp和longjmp,来实现异常捕获和协程

一、前言二、函数语法介绍与 goto 语句比较与 fork 函数比较与 Python 语言中的 yield/resume 比较三、利用 setjmp/longjmp 实现异常捕获四、利用 setjmp/longjmp 实现协程五、总结一、前言 在 C 标准库中,有两个威力很猛的函数:setjmp 和 longjmp&…

centos6.9系列LNMP环境的安装

一、Nginx 1.先解决Nginx的依赖关系: yum install -y pcre-devel openssl-devel 2.安装wget:sudo yum -y install wget 3.下载nginx的安装包:wget http://nginx.org/download/nginx-1.10.3.tar.gz 4.解压nginx文件包:tar xf nginx…

Linux 修改 ELF 解决 glibc 兼容性问题

转自:Soul Of Free Loophttps://zohead.com/archives/mod-elf-glibc/Linux glibc 问题相信有不少 Linux 用户都碰到过运行第三方(非系统自带软件源)发布的程序时的 glibc 兼容性问题,这一般是由于当前 Linux 系统上的 GNU C 库&am…