プロジェクトファイルに標準入力および出力ヘッダーファイルを含める
#include "stdio.h"
printfで直接印刷すると、スタックします。その理由は、プロジェクトにprintfのfputc関数がないためです。
stm32cubef4.zipを解凍した後、STM32Cube_FW_F4_V1.11.0 \ Projects \ STM324xG_EVAL \ Examples \ UART \ UART_PrintfのMDKプロジェクトを参照してください。このプロジェクトは、printf()関数の実装方法を提供します。
実際、シリアルポートで文字を出力する機能を実現するのは非常に簡単です。関数名は標準入出力ライブラリヘッダーファイルstdio.hで定義されており、プロトタイプはint fputc(int ch、FILE * f)です。
以下は追加する必要があるコードです
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xFFFF);//hurat1为串口号,根据自己情况进行选择
return ch;
}
次に、テスト用のメインプログラムです。
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
times++;
printf("%d times enter there\n",times);
HAL_Delay(1000);
}
/* USER CODE END 3 */
出力結果