我收到警告,但我尝试从类似的帖子中获取信息,但没有得到满意的结果 printstring 获取 unsigned char 并发送 char take *char 那么我是否必须输入强制类型转换或其他内容?请帮忙
uartcustom.c: In function ‘uart1_printString’:
uartcustom.c:162:9: warning: passing argument 1 of ‘uart1_sendchar’ makes pointer
from integer without a cast [enabled by default]
uart1_sendchar(string[local_counter]); // print each character
^
使用的两个函数是 串口1_发送字符 和 uart1_printstring
/*****************************************************************************
// Uart 1 send char */
/***************************************************************************/
void uart1_sendchar(char* tempchar)
{
int temp;
temp=write(device_uart1,&tempchar,1);
if(temp < 0)
{
printf("port failed to write\n");
}
}
/*****************************************************************************
// Uart 1 printstring */
/*****************************************************************************/
void uart1_printString( unsigned char *string)
{
int local_counter = 0;
// loop through until reach string's zero terminator
while (string[local_counter] != 0)
{
uart1_sendchar(string[local_counter]); // print each character
local_counter++;
}
}
最佳答案
string
是 unsigned char *
,因此 string[local_counter]
是 unsigned char
您可能想要:
uart1_sendchar(&string[local_counter]);
关于c - 警告 : passing argument 1 of ‘uart1_sendchar’ makes pointer from integer without a cast [enabled by default],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35623840/