这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【原创】硬件I2C库函数配置过程--from外面快要下雨了

共1条 1/1 1 跳转至

【原创】硬件I2C库函数配置过程--from外面快要下雨了

工程师
2022-06-13 12:17:22   被打赏 30 分(兑奖)     打赏

第一步需要初始化IIC的结构体配置

第二步依照IIC协议和EEPROM的时序图进行编写相应的函数

第三步写入单字节、写入多字节,读出多字节,需要注意判断条件

 

写入字节时:是发完数据再产生EV8中断现象,且写入字节时顺序较为简单为:

起始信号(判断EV5)->写入七位地址(加写入写出位判断EV6)->发送数据(此时数据为寄存器的地址判断EV8)->

(多字节写入的话写一个循环,指针地址加,写入字节数量减少)->停止信号

 

读出字节时:它相对于写入来说就会复杂一点为:

起始信号(判断EV5)->写入七位地址(加写入写出位判断EV6,此时方向为写)->发送数据(此时数据为寄存器的地址判断EV8)->

第二次起始信号(判断EV5)->写入七位地址(加写入写出位判断EV6,此时方向为读)->读数据(此时可以使用循环连续读取数据

,判断EV7,需要注意最后一个数据读完之后要给一个非应答信号(可以使用if判断需要读取的数量时候到了最后一位,非应答

信号就是关闭应答信号),读取时也应将数据指针自增,读取数量自减)->停止信号->使能应答信号以便后续使用

 

 

等待时序完成信号是比较软件特殊之处:

由do while()组成判断条件是:ADDR位为1,

起始信号(需要用SB位来判断是否为1)->写入七位地址(此条件为do while的判断语句,起始信号也包含其中,此时方向为写)->

结束信号

(此函数需要放在写入字节之后调用)




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]