/****************************************************************************************************** * 名 称:I2C_TxFrame(unsigned char *p_Tx,unsigned char num) * 功 能:主机发送若干字节的1帧数据 * 入口参数:无 * 出口参数:无 * 说 明:无 * 范 例:无 ******************************************************************************************************/ unsigned char I2C_TxFrame(unsigned char *p_Tx,unsigned char num) { _disable_interrupts(); unsigned char i=0; I2C_START; Send_Char(SLAVE_ADDR_W); //先发送器件地址和写标志 for(i=0;i<num;i++) //然后依次发送各字节数据 { Send_Char(*p_Tx); p_Tx++; } I2C_STOP; _enable_interrupts(); return 1; }
void Print_UART(char *ch) { unsigned char i = 0; while(ch[i] != '\0') { Send_Char(ch[i]); i++; } }
void Send_String(u8 *pData,char len) { while(len--) { Send_Char(*pData); // 指针加一 pData++; } }
/****************************************************************************************************** * 名 称:I2C_RxFrame(unsigned char *p_Tx,unsigned char num) * 功 能:主机接收若干字节的1帧数据 * 入口参数:无 * 出口参数:无 * 说 明:无 * 范 例:无 ******************************************************************************************************/ unsigned char I2C_RxFrame(unsigned char *p_Tx,unsigned char num) { unsigned char i=0; _disable_interrupts();; I2C_START; Send_Char(SLAVE_ADDR_R); //先发送器件地址和读标志 for(i=0;i<num;i++) //然后依次接收各个字节数据 { *p_Tx=Get_Char(); p_Tx++; } I2C_STOP; _enable_interrupts(); return 1; }
void Send_String(BYTE *str ,BYTE len) { while(len>0) { Send_Char(*str++); len--; ///*后面的加减Len的结果是不变的,为的是增加一些延时否则有的时候会出现发送出去对方接收不到或验证不正确 len--; len++; len--; len++; len--; len++; } }
void LCD_Print_String(char *string) { while(*string) Send_Char(*string++); }