STM8 AT24CXX使用I2C接口读写EEPROM子程序

来自丢石头百科
Admin讨论 | 贡献2019年11月19日 (二) 09:21的版本 (文本替换 - 替换“www.waveshare.net”为“{{SERVERNAME}}”)
<tbody></tbody>
软件设计

/********************************************************************* 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="http://wiki.diustou.com/" style="color: rgb(7, 66, 184);">http://www.waveShare.net   目 的: 建立AT24CXX操作库 目标系统: 基于STM8单片机  应用软件: Cosmic CxSTM8  说 明: 若用于商业用途,请保留此段文字或注明代码来源 深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权 

                                                                                                                                          • /
                                                                                                                                            #define WD_DADR 0xa0
                                                                                                                                            #define RD_DADR 0xa1
                                                                                                                                            
                                                                                                                                            #include "ws_i2c.h"
                                                                                                                                            
                                                                                                                                            void AT24CXX_Init(void)
                                                                                                                                            {
                                                                                                                                            	I2C_Init();
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            void AT24CXX_WriteAByte(u8 wordAdr,u8 dat)
                                                                                                                                            {
                                                                                                                                            	I2C_Start();
                                                                                                                                            	I2C_SendDAdr(WD_DADR);
                                                                                                                                            	I2C_SendDat(wordAdr);
                                                                                                                                            	I2C_SendDat(dat);
                                                                                                                                            	I2C_stop();
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            u8 AT24CXX_ReadAByte(u8 wordAdr)
                                                                                                                                            {
                                                                                                                                            	u8 dat;
                                                                                                                                            	I2C_Start();
                                                                                                                                            	I2C_SendDAdr(WD_DADR);
                                                                                                                                            	I2C_SendDat(wordAdr);
                                                                                                                                            	I2C_Start();
                                                                                                                                            	I2C_NAck();
                                                                                                                                            	I2C_SendDAdr(RD_DADR);
                                                                                                                                            	dat=I2C_RcvDat();
                                                                                                                                            	I2C_stop();
                                                                                                                                            	I2C_Ack();
                                                                                                                                            	return dat;
                                                                                                                                            }