usart.c中并无调用fputc函数
时间: 2023-06-20 21:06:09 浏览: 109
usart1.c
那么如果你想在USART中使用fputc函数,可以按照以下步骤进行:
1. 在USART初始化函数中打开stdio流:
```c
#include <stdio.h>
#include "usart.h"
void USART_Init(void)
{
// ...
// USART初始化代码
// ...
// 打开stdio流
stdout = &uart_output;
stdin = &uart_input;
}
```
2. 添加以下代码,定义stdio输出流所需的uart_output结构体和_putc函数:
```c
#include <stdio.h>
#include "usart.h"
// 定义stdio输出流所需的结构体
static struct __FILE uart_output = {
.putc = _putc,
.puts = _puts,
.write = NULL,
.flush = NULL
};
// 定义_putc函数,将字符输出到USART中
void _putc(char ch)
{
// 等待USART发送缓冲区为空
while ((USART1->SR & USART_SR_TXE) == 0);
// 将字符发送到USART中
USART1->DR = ch;
}
```
3. 现在你就可以在USART中使用printf函数输出字符串了:
```c
#include <stdio.h>
#include "usart.h"
int main(void)
{
USART_Init();
printf("Hello, world!\r\n");
while (1);
}
```
注意:在使用printf函数输出字符串时,需要在字符串的末尾添加"\r\n",以便USART正确解析字符串。
阅读全文