Fanexs168 发表于 2022-6-22 14:00

F003 硬件I2C 阻塞式API例程

本帖最后由 Fanexs168 于 2023-2-22 23:52 编辑

查看F003 SDK的例程,硬件I2C主机只有中断收发的体现。但遇到有些场合,有的客户不接受中断处理的方案,不期望引入太多中断。
在此新整理了F003的主机Polling发送例程,封装好了I2C_Master_Transmit()、I2C_Master_Receive()、I2C_Master_Tranmit_NOStop()这三个主机收发相关的API——包含器件地址、数据、数据长度三个收发要素。
   
   


二次封装,操作EEPROM

[*]二次封装出EEPROM_Write()、EEPROM_Read()函数,跟AT24C256C通信

   

[*]查看EEPROM手册。

[*]5ms一个写入周期,跟写入数据量无关。
[*]每页做多可连续写入64Byte

   
   
①往0x0100地址写入4字节数据
   
②往0x0100地址读回4字节数据。匹配,成功!
   

③往0x0100测试连续写入64字节,读回正常
   
   

④如果写操作超过64字节,会从Page开头重新开始写入此page,死循环直到遇到Stop条件(此EEROM单次最大写入64Byte,对应一个Page页的大小)
   



[*]如下,操作长度超过当页Page的第64字节后,写入索引号会重回/覆盖当前Page的第1个字节继续往后写入
[*]所以针对写操作,EEPROM API后续需要优化上跨页写入的支持

   

   


但是读操作没有上述字节长度影响,会一直往后读
   
   




sesefadou 发表于 2022-7-9 12:15

都是模拟iic。   

vivilyly 发表于 2022-7-9 15:33

这个用是逻辑分析器吗   

guijial511 发表于 2022-7-11 08:39

IIC做IAP升级会不会太慢了?

skyred 发表于 2022-8-8 21:11

什么是阻塞式

lajfda001 发表于 2022-8-16 10:20

楼主是用逻辑分析仪进行分析的吗?还是?

lajdfla001 发表于 2022-8-16 10:30

很少碰到阻塞的情况。

udaidfa002 发表于 2022-8-16 10:57

没有看见阻塞的情况。

jflahdink09 发表于 2022-8-16 11:08

这个没有测试过,还不是很清楚这个事情。

mituzu 发表于 2022-8-20 15:49

使用的是哪个芯片呢   

everyrobin 发表于 2022-8-20 15:58

这个硬件iic不好用。   

robertesth 发表于 2022-8-20 21:15

硬件I2C 阻塞难度大吗   

Stahan 发表于 2022-9-5 22:34

没碰到过阻塞

pmp 发表于 2022-9-7 17:26

这个非阻塞和阻塞有什么不同

earlmax 发表于 2022-9-7 18:06

使用的是apm32哪个芯片呢

mituzu 发表于 2022-9-8 09:55

这个会不会影响程序的执行呢?

houjiakai 发表于 2022-9-8 12:19

I2C的速度比SPI慢一点

Stahan 发表于 2022-10-4 20:29

硬件的不好用吧

maqianqu 发表于 2022-10-5 18:22

I2C通信的API是什么               

782719451 发表于 2022-10-8 16:26

下载的包,是串口示例
页: [1] 2
查看完整版本: F003 硬件I2C 阻塞式API例程