📄 main.c
字号:
#include "mydefine.h"
#include <AT91SAM7S64.H>
volatile char message[80];
volatile int loop;
extern void AT91F_TWI_Open(void);
extern int AT91F_TWI_WriteByte (const AT91PS_TWI,int, int, char *, int);
extern int AT91F_TWI_ReadByte (const AT91PS_TWI,int, int, char *, int );
extern void uartinit(void);
extern unsigned char putcharme(unsigned char i);
extern void USART0_send_string(unsigned char *bpSendData,unsigned int length);
//*--------------------------------------------------------------------------------------
//* 函数名 : wait_ms
//* 功能 :软件循环延时 MS微妙
// 参数: MS:延时时间(多少微妙)
//* Creation : 张正锋 2006-1-15 zhangzf@baite-group.com
//*--------------------------------------------------------------------------------------
void wait_ms (unsigned int ms )
{
for (loop=0; loop<1000*ms; loop++){};
}
//*----------------------------------------------------------------------------
//* 函数名: AT91F_TestEEPROM
//* 功能:测试TWI读写EEPROM功能
//* Creation : 张正锋 2006-1-15 zhangzf@baite-group.com
//*----------------------------------------------------------------------------
void AT91F_TestEEPROM(void)
{
//写一个数据测试
char status,write,read,bI;
unsigned char bpData[3];
for(bI=0;bI<245;bI++)
{
write=0x55;
bpData[0] = bI/100+'0';
bpData[1] = (bI%100)/10+'0';
bpData[2] = bI%10+'0';
// 向EEPROM的01位置开始连续写10个字节
status =AT91F_TWI_WriteByte(AT91C_BASE_TWI, AT91C_EEPROM_I2C_ADDRESS | AT91C_TWI_IADRSZ_2_BYTE, bI, &write, 1);
//如果返回的status不为0,则表明写出错
if (status)
{
//打应错误信息
USART0_send_string(bpData,3);
USART0_send_string("ERROR",5);
}
//等待100MS
wait_ms(100);
//从EEPROM的01位置开始连续读10个字节
status =AT91F_TWI_ReadByte(AT91C_BASE_TWI, AT91C_EEPROM_I2C_ADDRESS | AT91C_TWI_IADRSZ_2_BYTE, bI, &read, 1);
//如果返回的status不为0,则表明写出错
if (status)
{
//打应错误信息
USART0_send_string(bpData,3);
USART0_send_string("10 IS ERROR",11);
}
if (read == write)
{
//打印测试信息
USART0_send_string(bpData,3);
USART0_send_string("OKOKOK",6);
continue ;
}
else
{
//打印测试信息
USART0_send_string(bpData,3);
USART0_send_string("HAVE ERROR",10);
continue;
}
}
}
int main()
{
uartinit();
USART0_send_string("begin to test twi",17);
USART0_send_string("open twi",8);
while(1)
{
//TWI 测试
AT91F_TWI_Open();
AT91F_TestEEPROM();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -