void UART0_SendBuff( unsigned int *buff, unsigned int size ){ while( size -- ) { TX_OK = 0; S0BUF = *buff ++; while( TX_OK == 0 ); } TX_OK = 0;}void UART0_SendStr( int* str ){ UART0_SendBuff( ( unsigned int* ) str, strlen( str ) );}void main( void ){ unsigned int data3[6]={0x7E,0x04,0x41,0x00,0x01,0xEF}; unsigned int i; CLKCTRL = ( CLKCTRL | 0x80 ) & ~0x08; UART_Init( 3 ); //baudrate = 9600 EA = 1; while( 1 ) { for(i=0;i<6;i++) { UART0_SendStr(data3[i]); //..\SOURCE\MAIN.C(77): error C214: illegal pointer conversion } }}
UART0_SendStr(data3[i]); 改成UART0_SendStr(&data3[i]); 形参是int指针,实参是int,当然不行了 追问 哪怎么改 追答 UART0_SendStr(data3[i]); 改成UART0_SendStr(&data3[i]); 追问 要是这样改,都不输出了,我是要让串口输出0x7E,0x04,0x41,0x00,0x01,0xEF的(不是字符) 要是这样改,都不输出了,我是要让串口输出0x7E,0x04,0x41,0x00,0x01,0xEF的(不是字符) 追答 串口调试助手你选了HEX查看了吗?