日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

stm32 printf函數(shù)調(diào)用

 昵稱9428311 2012-03-30

STM32串口通信中使用printf發(fā)送數(shù)據(jù)配置方法(開發(fā)環(huán)境 Keil RVMDK)

【詳細(xì)說明】STM32串口通信中使用printf發(fā)送數(shù)據(jù)配置方法(開發(fā)環(huán)境 Keil RVMDK)

在STM32串口通信程序中使用printf發(fā)送數(shù)據(jù),非常的方便??稍趧傞_始使用的時(shí)候總是遇到問題,下面就說一下使用printf需要做哪些配置。

有兩種配置方法:
一、對(duì)工程屬性進(jìn)行配置,詳細(xì)步驟如下
1、首先要在你的main 文件中 包含“stdio.h” (標(biāo)準(zhǔn)輸入輸出頭文件)。
2、在main文件中重定義<fputc>函數(shù)    如下:
   int fputc(int ch, FILE *f)
   {
      USART_SendData(USART1, (unsigned char) ch);// USART1 可以換成 USART2 等
      while (!(USART1->SR & USART_FLAG_TXE));
      return (ch);
   }
   這樣在使用printf時(shí)就會(huì)調(diào)用自定義的fputc函數(shù),來發(fā)送字符。
3、在工程屬性的 “Target" -> "Code Generation" 選項(xiàng)中勾選 "Use MicroLIB"” 
   MicroLIB 是缺省C的備份庫(kù),關(guān)于它可以到網(wǎng)上查找詳細(xì)資料。

至此完成配置,在工程中可以隨意使用printf向串口發(fā)送數(shù)據(jù)了。

二、第二種方法是在工程中添加“Regtarge.c”文件
1、在工程中創(chuàng)建一個(gè)文件保存為 Regtarge.c , 然后將其添加工程中
在文件中輸入如下內(nèi)容(直接復(fù)制即可)
#include <stdio.h>
#include <rt_misc.h>
#pragma import(__use_no_semihosting_swi)
extern int  SendChar(int ch); // 聲明外部函數(shù),在main文件中定義
extern int  GetKey(void);
struct __FILE {
  int handle;                 // Add whatever you need here 
};
FILE __stdout;
FILE __stdin;
int fputc(int ch, FILE *f) {
  return (SendChar(ch));
}
int fgetc(FILE *f) {
  return (SendChar(GetKey()));
}
void _ttywrch(int ch) {
SendChar (ch);
}
int ferror(FILE *f) {                            // Your implementation of ferror
  return EOF;
}
void _sys_exit(int return_code) {
label:  goto label;           // endless loop
}
2、在main文件中添加定義以下兩個(gè)函數(shù)
int SendChar (int ch)  {
  while (!(USART1->SR & USART_FLAG_TXE)); // USART1 可換成你程序中通信的串口
  USART1->DR = (ch & 0x1FF);
  return (ch);
}
int GetKey (void)  {
  while (!(USART1->SR & USART_FLAG_RXNE));
  return ((int)(USART1->DR & 0x1FF));
}
3、 至此完成配置,可以在main文件中隨意使用 printf 。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多