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

共31条 1/4 1 2 3 4 跳转至

【原创】硬件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的判断语句,起始信号也包含其中,此时方向为写)->

结束信号

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




高工
2022-06-13 17:01:47     打赏
2楼

感谢楼主的分享,很实用了。


工程师
2022-06-13 19:46:07     打赏
3楼

感谢分享


工程师
2022-06-13 19:48:29     打赏
4楼

谢谢分享


工程师
2022-06-13 20:49:13     打赏
5楼

谢谢分享


工程师
2022-06-13 20:56:08     打赏
6楼

感谢楼主分享


工程师
2022-06-13 21:01:07     打赏
7楼

感谢楼主分享


工程师
2022-06-13 21:05:03     打赏
8楼

感谢楼主分享


专家
2022-06-13 21:15:44     打赏
9楼

谢谢了!


高工
2022-07-21 00:17:40     打赏
10楼

很不错哦啊


共31条 1/4 1 2 3 4 跳转至

回复

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