配置 PWM ADC LCD
This commit is contained in:
@@ -117,6 +117,33 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||
/* 引入标准输入输出头文件,包含fputc函数原型和FILE类型定义 */
|
||||
#include <stdio.h>
|
||||
|
||||
/* 禁用半主机模式
|
||||
* 不勾选MicroLIB时,标准库默认使用半主机(Semihosting)实现printf。
|
||||
* 半主机需要调试器支持,脱机运行时会导致程序卡死。
|
||||
* __use_no_semihosting 让链接器不链接半主机相关函数,
|
||||
* 同时我们必须提供_sys_exit等替代函数。
|
||||
*/
|
||||
#pragma import(__use_no_semihosting)
|
||||
|
||||
/* 标准库要求提供 __FILE 结构体定义和 __stdout 实例 */
|
||||
struct __FILE {
|
||||
int handle;
|
||||
};
|
||||
FILE __stdout;
|
||||
|
||||
/* 退出函数 — 标准库在用完 _sys_exit 后调用,此处空实现 */
|
||||
void _sys_exit(int return_code)
|
||||
{
|
||||
(void)return_code;
|
||||
while (1);
|
||||
}
|
||||
|
||||
/* 写字符 — 底层 tty 输出钩子,供某些 stdio 函数调用 */
|
||||
void _ttywrch(int ch)
|
||||
{
|
||||
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 重定向fputc函数,将printf输出重定向到串口1
|
||||
* @param ch: 要发送的字符
|
||||
@@ -127,16 +154,16 @@ int fputc(int ch, FILE *f)
|
||||
{
|
||||
/* 消除未使用参数f的编译警告 */
|
||||
(void)f;
|
||||
|
||||
|
||||
/* 调用HAL库串口发送函数,发送单个字符 */
|
||||
/* 参数说明:
|
||||
&huart1: 串口1的句柄(若使用其他串口,改为对应的句柄,如&huart2)
|
||||
(uint8_t *)&ch: 要发送的数据缓冲区地址
|
||||
1: 发送数据的长度(单个字符)
|
||||
HAL_MAX_DELAY: 超时时间(无限等待,确保发送完成)
|
||||
HAL_MAX_DELAY: 超时时间(无限等待,确保发送成功)
|
||||
*/
|
||||
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
|
||||
|
||||
|
||||
/* 返回发送的字符,符合fputc函数的返回值要求 */
|
||||
return ch;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user