硬件连接
通过CH340G与上位机的通信, PA9(TX)—— RXD,PA10(RX)——TXD
具体步骤
- 在CubeMX中打开USART1,设定为全双工(Asynchronous)的通信
- 此时默认的GPIO端口设置为PA9(TX),PA10(RX)
- 打开中断使能
- 波特率设定为115200bits,8位的模式;USART时钟走的是APB1
- 需要在工程文件中对Printf函数做重定向:
- 对文件进行编译,关联所有程序
- 在 stm32f4xx_hal.c中包含#include <stdio.h>
- 在 stm32f4xx_hal.c 中重写(添加)fget和fput函数
- 需要注意点:编译选项中,MicroLib需要勾选。
- 在main.c中直接就可以使用printf了。
extern UART_HandleTypeDef huart1;
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
return ch;
}
Tips:关于如何指定某个口作为重定向——是声明一个extern UART_HandleTypeDef huart1 的全局变量,因为用的是同一个所以就能够“连接起来了”。
|