作者zzss2003 (brotherD)
看板Electronics
标题Re: [问题] 求救!!写不出I2C我就要走路了
时间Wed May 31 10:33:37 2017
谢谢KOBE大大以及各位的支持,小弟感激不尽。
看了您的程式码後,有一些问题想要请教一下您。
void swi2c_START(int delaytime)这段实作中
sda_set()的实作怎麽写?
我看得懂虚拟码,要把sda设为high,但怎麽设呢?是直接写LATCbits.LAT4 = 1吗?
同理,clear要怎麽清除呢?也是直接LAT设0吗?
因为我看spec,要设定为MSSP模式必须把TRIS设为1(input),直接动LAT不是没有用吗?
另外,当我把SSP1CON2中的SEN = 1,效果是否就等同於这段swi2c_START实作?
在void swi2c_WRITE(int msg)里,我看得懂这段程式码,但没有把要传送的资料给
SSP1BUF,PIC有办法送吗?
请您指点迷津,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.26.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1496198020.A.08C.html
1F:推 TWkobe: 你的理解没错 通常官方libs有个pin define 05/31 16:40
2F:→ TWkobe: 通常会帮你弄好很多的macro 可以设定某个脚为什麽样的态 05/31 16:42
3F:→ TWkobe: 使用i2c前正确的设定好各个脚的态後, 再赋值给相对应的pin 05/31 16:42
4F:→ TWkobe: 为0或1即可 05/31 16:43
5F:→ TWkobe: 然後有些你说的register名称 我没用过pic不清楚 05/31 16:44
6F:→ TWkobe: 还有传给SSP1BUF我猜那是硬体i2c用的data buffer, 原理大 05/31 16:44
7F:→ TWkobe: 概就是要将传送的资料先写入至此buffer, 硬体会自动将里面 05/31 16:45
8F:→ TWkobe: data再行传输出去, 是比较稳当保险的做法 05/31 16:46
9F:→ TWkobe: 至於用software simulate的i2c就是直接控制脚来传送 05/31 16:46
10F:→ TWkobe: 所以运作原理跟官方用的硬体i2c当然不同 05/31 16:47
11F:→ TWkobe: 我只能帮到此, 因为我没用过这系列mcu就是了XD 05/31 16:48
12F:推 ilovepachaya: TWkobe 让我尊称您为I2C王 05/31 17:22
13F:推 nova06091: god of I2C!!!! 06/01 11:43
14F:推 fxp87117: 本版I2C王诞生了... 06/02 19:37
15F:推 maxwel1113: 推大善人 06/02 19:41
17F:→ yudofu: 读且EEPROM的application note 06/02 22:34
19F:→ yudofu: 奇怪,人家现成写好好你送你不要、要从protocol开始硬干。 06/02 22:35
20F:→ yudofu: 我们是社会人士,不是培养实力的学生,有问题先上网站找文 06/02 22:36
21F:→ yudofu: 件是基本常识吧?先赶快copy回来加进去改再说。 06/02 22:36
22F:推 scarofwind: 直接call vendor 0rz 06/03 16:49
23F:推 Williamette: King of I2C 请受小弟一拜 06/04 19:08
24F:→ yugi2567: 加油好吗 真的 06/04 21:47