AT24C02 模擬/固定 I2C 兩種方式 而且可以讀寫小數
單片機源程序如下:
- /**
- ******************************************************************************
- * @file main.c
- * @author fire
- * @version V1.0
- * @date 2013-xx-xx
- * @brief I2C EEPROM(AT24C02)測試,測試信息通過USART1打印在電腦的超級終端
- ******************************************************************************
- ******************************************************************************
- */
-
- #include "stm32f10x.h"
- #include "bsp_usart1.h"
- #include "bsP_i2c_ee.h"
- #include "bsP_led.h"
- #include <string.h>
- #define EEP_Firstpage 0x00
- u8 I2c_Buf_Write[256];
- u8 I2c_Buf_Read[256];
- void I2C_Test(void);
- //void *memcpy(void *dest, const void *src, size_t n);
- long double cal_p[6]={0.1, 1.1, 3.1, 4.02, 6.3, 0.01};
- long double cal_test[6]={0};
- uint8_t cal_flag = 0xaa;
- uint8_t k;
- /**
- * @brief 主函數
- * @param 無
- * @retval 無
- */
- int main(void)
- {
-
- /* 串口1初始化 */
- USART1_Config();
-
- printf("\r\n 這是一個I2C外設(AT24C02)讀寫測試例程 \r\n");
- //LED_GPIO_Config();
- /* I2C 外設初(AT24C02)始化 */
- I2C_EE_Init();
- printf("\r\n 這是一個I2C外設(AT24C02)讀寫測試例程 \r\n");
-
- //I2C_Test();
-
- /*-------------------------------------------------------------------*/
-
- printf("\r\n start to write \r\n");
- I2C_EE_BufferWrite((void*)cal_p, 1, sizeof(cal_p));
- //I2C_EE_BufferWrite((void*)cal_p, 1, sizeof(cal_p));
-
- printf("\r\n start to read \r\n");
- I2C_EE_BufferRead((void*)cal_test, 1, sizeof(cal_test));
-
- for( k=0; k<6; k++ )
- printf("%LF\r\n", cal_test[k]);
- while (1)
- {
- }
- }
- /**
- * @brief I2C(AT24C02)讀寫測試
- * @param 無
- * @retval 無
- */
- void I2C_Test(void)
- {
- u16 i;
- printf("寫入的數據\n\r");
-
- for ( i=0; i<=255; i++ ) //填充緩沖
- {
- I2c_Buf_Write[i] = i;
- printf("0x%02X ", I2c_Buf_Write[i]);
- if(i%16 == 15)
- printf("\n\r");
- }
- //將I2c_Buf_Write中順序遞增的數據寫入EERPOM中
- //LED1(ON);
- I2C_EE_BufferWrite( I2c_Buf_Write, EEP_Firstpage, 256);
- //LED1(OFF);
-
- printf("\n\r寫成功\n\r");
-
- printf("\n\r讀出的數據\n\r");
- //將EEPROM讀出數據順序保持到I2c_Buf_Read中
- //LED2(ON);
- I2C_EE_BufferRead(I2c_Buf_Read, EEP_Firstpage, 256);
- //LED2(OFF);
-
- //將I2c_Buf_Read中的數據通過串口打印
- for (i=0; i<256; i++)
- {
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
18、I2C-EEPROM.rar
(2.36 MB, 下載次數: 118)
2018-7-18 01:57 上傳
點擊文件名下載附件
模擬I2C 固定I2C AT24C02 讀寫程序,可以讀寫小數
|