?? bsp_printf.c
字號(hào):
/*
*********************************************************************************************************
*
* 模塊名稱 : printf模塊
* 文件名稱 : bsp_printf.c
* 版 本 : V2.0
* 說(shuō) 明 : 實(shí)現(xiàn)printf和scanf函數(shù)重定向到串口1,即支持printf信息到USART1
* 實(shí)現(xiàn)重定向,只需要添加2個(gè)函數(shù):
* int fputc(int ch, FILE *f);
* int fgetc(FILE *f);
* 對(duì)于KEIL MDK編譯器,編譯選項(xiàng)中需要在MicorLib前面打鉤,否則不會(huì)有數(shù)據(jù)打印到USART1。
*
* 這個(gè)c模塊無(wú)對(duì)應(yīng)的h文件。
*
* 修改記錄 :
* 版本號(hào) 日期 作者 說(shuō)明
* v1.0 2011-02-11 armfly ST固件庫(kù)升級(jí)到V3.4.0版本。
* v2.0 2011-10-16 armfly ST固件庫(kù)升級(jí)到V3.5.0版本。
*
* Copyright (C), 2010-2011, 安富萊電子 www.armfly.com
*
*********************************************************************************************************
*/
#include "stm32f10x.h"
#include <stdio.h>
/*
*********************************************************************************************************
* 函 數(shù) 名: fputc
* 功能說(shuō)明: 重定義putc函數(shù),這樣可以使用printf函數(shù)從串口1打印輸出
* 形 參: 無(wú)
* 返 回 值: 無(wú)
*********************************************************************************************************
*/
int fputc(int ch, FILE *f)
{
extern void SendOneByte(char datatoSend);
/* 寫(xiě)一個(gè)字節(jié)到USART1 */
//USART_SendData(USART1, (uint8_t) ch);
SendOneByte((uint8_t) ch);
/* 等待發(fā)送結(jié)束 */
//while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
{}
return ch;
}
/*
*********************************************************************************************************
* 函 數(shù) 名: fgetc
* 功能說(shuō)明: 重定義getc函數(shù),這樣可以使用scanff函數(shù)從串口1輸入數(shù)據(jù)
* 形 參: 無(wú)
* 返 回 值: 無(wú)
*********************************************************************************************************
*/
int fgetc(FILE *f)
{
/* 等待串口1輸入數(shù)據(jù) */
while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
return (int)USART_ReceiveData(USART1);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -