手里有微雪的模块AT24CXX。
原理图如下:
我想IIC最重要的是那两个上拉电阻,即使你用模拟管脚去读IIC也得要这两个上拉电阻。因为,不加就不稳定。
我今天我想说的是一定要选对型号及相应的例程。我的芯片是MM32F031C8T6。那么就不能选MM32F031C6T6 的例程。
而我近一周没有搞了,又把以前的错下的例程给打开了。整了很烦恼。
程序很简单,就是往AT24CXX写15个数,然后再读出来,读出来的同时串口输出出来:
- void I2CMasterTest(I2C_TypeDef *I2Cx)
- {
- unsigned char i;
-
- I2CInitMasterMode();
-
-
- I2CMasterWrite(I2C1,FLASH_DEVICE_ADDR, 16*1, 16, tx_buffer0 );
-
- for(i = 0; i < 16 ;i ++)
- {
- printf("TX data is: %x \r\n", tx_buffer0[i]);
- }
-
- I2CMasterRead(I2C1,FLASH_DEVICE_ADDR, 16*1, 16, rx_buffer0 );
-
- }
复制代码
而I2CMasterRead中有读出的数据通过串口打印出来
- I2CTXByte(I2Cx,CMD_WRITE,temp); //tx memory addr
-
-
- for(i=0;i<rx_count;i++)
- {
- rx_data[i] = I2CRXByte(I2Cx);
-
- printf("RX data%d is : %x \r\n",i,rx_data[i]);
-
- }
复制代码
以下是运行截图:
可见MMF031 IIC还是不错的。