本帖最后由 zhang7309 于 2014-12-28 18:49 编辑 8 v( f# w! q& x+ s7 ~3 j5 A6 l
# ^+ W! d* f D: w$ Z' A: p1 Q
同样使用的是STM32CubeMX 和MDK,利用STM32CubeMX生成IIC驱动代码,调试过程中出现了问题; l, l* c2 B+ P2 u
因为利用STM32CubeMX生成的IIC驱动代码是块读写操作,在使用这种模式的时候,出现数据写入、读出总是0,2 t8 b4 c# d, H8 q
说明读写有问题,调试过程中发现单独读、写2个单元的数据是没有问题的,多于2个就出问题,搜索网络8 f- I! u2 E0 P/ D0 h* E
确实有人遇到这个问题,解决方法是利用块读写修改成单字节读写,自己改写多字节读写操作代码,参考了0 R. \; o# T+ |4 Y" I4 O& H
网友的代码后,成功实现了利用硬件IIC多字节的读写操作,IIC调试通过,下一步一些IIC接口传感器就容易实现
( E+ w: o* f3 E+ ~0 k. i通信了。- Y9 [, ~4 |6 p. f
附代码,程序实现24c02的读写操作,将读出的单元数据通过串口发送到PC
# F0 } s$ ~. l, v+ L; [" E1 C a4 Z! G5 u& \% d7 v6 c) C
" j1 [( r/ F) `' `6 m9 d* P
/ {1 N; B; A7 o @ |