历史上的今天
返回首页

历史上的今天

今天是:2024年09月27日(星期五)

正在发生

2021年09月27日 | 使用STM8L的硬件I2C(四)硬件I2C的使用注意

2021-09-27 来源:eefocus

其他系列文章请参见:

(一)硬件I2C的简介

(二)硬件I2C的事件和检测

(三)硬件I2C中断读写(流程及代码)


使用STM8L的硬件I2C时,有几个点要注意:


I2C的初始化

时钟的使能操作必须在其他I2C设置之前,否则设置不生效


CLK_PeripheralClockConfig(CLK_Peripheral_I2C1, ENABLE);


Slave地址的设置

这一点让人困扰,花了不少时间才搞清楚。

是因为标准库函数I2C_Send7bitAddress()并不会帮助你左移。

这个左移动作必须由用户完成,如下:


I2C_Send7bitAddress(I2C1, _i2c_dev.addr << 1, I2C_Direction_Transmitter);实现并不会帮助左移


Read流程的关闭

因为使用硬件I2C,处理速度较快。要预先在下一数据接收前完成Nack和Stop设置。

中断和Polling模式都要处理,特别是中断必须处理。中断模式下可以如下操作:


EV5:送Slave地址(Read)

EV6:如果仅需读取字节数n=1,则直接关Ack并发送Stop,n>=2,则不做动作

EV7:先读数据,然后判断剩余字节n,如果n=1,则关Ack并发送Stop,如n=0,则关中断


其实本质就是必须要提前1个字节做好准备动作(清Ack、开Stop)。


超时处理

要是地址错误或者其他总线错误会导致总线挂起停止响应,所以应用层上最好做超时处理。


I2C_IT_ERR和SR2处理

开启了I2C_IT_ERR中断时,SR2中会存储错误码供处理。

最简单的处理就是将SR2清楚,重置为0。

推荐阅读

史海拾趣

Cybernetic Micro Systems公司的发展小趣事

为了进一步拓展业务领域,CMS开始寻求跨界合作。他们与一家领先的汽车制造商达成战略合作,共同研发车载智能系统。CMS的芯片技术为车载系统提供了强大的计算能力和数据处理能力,使得车载系统更加智能化、便捷化。这一合作不仅为CMS带来了新的收入来源,也进一步提升了公司的品牌影响力。

Greenliant公司的发展小趣事

在光伏产业快速发展的背景下,GPS于2020年进军光伏逆变器市场。公司凭借其深厚的技术积累和创新能力,开发出了一系列高效、可靠的光伏逆变器产品。这些产品不仅转换效率高,而且具备智能监控和远程控制功能,大大提升了光伏电站的运行效率和安全性。GPS的光伏逆变器产品迅速获得市场认可,成为众多光伏项目的首选设备。

EM Microelectronic-Marin SA公司的发展小趣事

1995年,Philips Semiconductors收购了Mikron Graz,这一事件标志着EM Microelectronic-Marin与Philips在半导体领域的深度合作。此后,两家公司共同推动了RFID(射频识别)技术的发展,使其逐渐成为电子行业中不可或缺的一部分。EM Microelectronic-Marin凭借其在低功耗技术方面的优势,为RFID技术提供了强有力的支持。

Aplus Integrated Circuits公司的发展小趣事

随着公司产品的不断优化和升级,Aplus Integrated Circuits开始寻求与国际市场的接轨。公司积极参与国际电子行业的交流与合作,与多家国际知名企业建立了稳定的合作关系。通过引进国外先进的技术和管理经验,公司的产品逐渐走向国际化,市场竞争力得到了进一步提升。

Connection One公司的发展小趣事

在电子行业的初期,Connection One公司凭借其创始人对半导体技术的深刻理解,成功研发出一款具有划时代意义的芯片。这款芯片不仅性能卓越,而且功耗极低,立即在市场上引起了轰动。公司因此迅速积累了第一笔资金,为后续的研发和扩展打下了坚实基础。

Dfx公司的发展小趣事

某消费电子公司在生产过程中经常遇到质量问题,导致产品退货率居高不下。为了解决这个问题,该公司引入了DFX的设计理念,对产品设计、生产和测试等环节进行了全面优化。通过改进生产工艺、优化材料选择和加强质量控制等手段,该公司成功提高了产品的质量和可靠性,降低了退货率,赢得了消费者的信任。

问答坊 | AI 解惑

mini2440的按键控制LED小程序~~~

看到坛子里很多人拿到板子后不知道第一步该如何做, 在网上看到一个朋友的博客,感觉还不错,对于购买板子的朋友应该有所帮助,所以呈现出来: 来源:http://adreaman.com/0524arm-mini2440-led-key-non-os.html mini2440是当前最经济的arm9开 ...…

查看全部问答>

世界各大品牌功率器件选型表(有参考价格)

本文为转帖,觉得对大家有用,就转到坛子了:)功率器件的牌子很多,以MOSFET为例,有飞兆,IR ,ST ,ON,英飞凌,TOSHIBA的世界各大牌子,如何花更少的钱买到最好的东西,是我们采购也好,工程师也罢是我们追求的目标,这样才会老板满意,客户满意 ...…

查看全部问答>

【藏书阁】EZ-USB2100 系列单片机原理,编程及应用

目录: 第1章 EZ-USB简介 1.1 介绍 1.2 EZ-USB结构框图 1.3 USB规格说明 1.4 令牌和PID 1.5 主机是控制器 1.6 USB的传输方向 1.7 帧 1.8 EZ-USB的传输类型 1.9 枚举 l.10 USB内核 1.11 EZ-USB微处理器 l.12 重校举 ...…

查看全部问答>

Stellaris系列资料汇总(欲打造最强帖哦)

Keil uv3快速入门 demo https://bbs.eeworld.com.cn/thread-98020-1-1.html…

查看全部问答>

(重分答谢)AT 命令 STATE: IP IND(连线失败,接受场景配置)

我再WinCE5.0上用GPRS上网发信息到服务器上: AT+CREG? // check if registration network in 2 seconds interval +CREG: 0,1 // module responses AT+CGATT? // check if attach PDU for 2 seconds interval +CGATT: 1 // module response ...…

查看全部问答>

windows mobile上的数据拷贝(类似于PC的GHOST软件)

各位高手,最近小弟遇到一个问题,如何在windows mobile下实现类似于PC中GHOST软件,即读取ROM中的所有内容. 本人尝试过几种方法:(平台是VS2005 + Windows Mobile 5.0 Smartphone SDK) 1.在PC桌面端开发应用程序,用RAPI读取手机数据,其中用到了CeC ...…

查看全部问答>

请教,在程序只读存储器的绝对地址写数据的问题

芯片是cc2430 运行环境是IAR 片外寄存器的0x0000-0xDF00是程序存储器, 在程序存储器的某个地址定义了一个字节的数据, #define DATA1 ((volatile xdata*)0x0010) = 0x0F 可是读这个地址的数据时,出现了问题 我读DATA1 的值为0x0F,但读地 ...…

查看全部问答>

请问一下各位,2.8寸320X240的TFT最便宜的多少钱一片

                                 请问一下各位,2.8寸320X240的TFT 最便宜的多少钱一片,谢谢!!…

查看全部问答>

乘法型的DA和普通的DA有什么区别呢?

希望大虾能够解析下乘法型的DA和普通的DA的区别…

查看全部问答>

再说MOS的主要参数

1.开启电压VT   ·开启电压(又称阈值电压):使得源极S和漏极D之间开始形成导电沟道所需的栅极电压;   ·标准的N沟道MOS管,VT约为3~6V;   ·通过工艺上的改进,可以使MOS管的VT值降到2~3V。   2. 直流输入电阻RGS   ·即 ...…

查看全部问答>