当我编写以下代码时。 Putty打印文本但我不能在下面键入任何内容..
例如:
首先他做printf
- >你是谁?
然后我做了一个fgets
我通常最常输入的内容,这样做起作用。
最后他做了另一个printf
他说的话;很高兴见到你...
int main(void)
{
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_I2C1_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
char name[10];
printf("Who are you? \n");
fgets(name,10,stdin);
printf("Good to meet you, %s.\n",name);
return(0);
}
谁能帮助我吗?
谢谢 !
答案 0 :(得分:0)
您已在源代码中覆盖了fputs
的实现。因此,您的链接器不需要查找该函数的库实现。通过实现fputc
,您已将stdio-output-path连接到UART发送器。
您需要定义相应的输入路径。这可以通过实现fgetc函数来完成。在那可以库函数fgets
可以调用你的函数,轮询UART接收器。
嵌入式环境中stdio的默认实现依赖于供应商。它可以连接到
因此,您有责任正确实现该连接。这可能比fputc
实现更复杂,因为如果在呼叫时UART收到数据,则必须检查。