日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32串口通信中使用printf发送数据配置方法 开发环境 Keil

發布時間:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32串口通信中使用printf发送数据配置方法 开发环境 Keil 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STM32串口通信中使用printf發送數據配置方法(開發環境 Keil RVMDK)

已有 12456 次閱讀2011-6-29 23:29?|

在STM32串口通信程序中使用printf發送數據,非常的方便。可在剛開始使用的時候總是遇到問題,常見的是硬件訪真時無法進入main主函數,其實只要簡單的配置一下就可以了。 下面就說一下使用printf需要做哪些配置。 有兩種配置方法: 一、對工程屬性進行配置,詳細步驟如下 1、首先要在你的main 文件中 包含“stdio.h” (標準輸入輸出頭文件)。 2、在main文件中重定義<fputc>函數??? 如下: // 發送數據 int?fputc(int ch, FILE *f) { USART_SendData(USART1, (unsigned char) ch);// USART1 可以換成 USART2 等 while (!(USART1->SR & USART_FLAG_TXE)); return (ch); } // 接收數據 int GetKey (void)? { while (!(USART1->SR & USART_FLAG_RXNE)); return ((int)(USART1->DR & 0x1FF));
?? } 這樣在使用printf時就會調用自定義的fputc函數,來發送字符。 3、在工程屬性的 “Target" -> "Code Generation" 選項中勾選 "Use MicroLIB"” MicroLIB 是缺省C的備份庫,關于它可以到網上查找詳細資料。 至此完成配置,在工程中可以隨意使用printf向串口發送數據了。 二、第二種方法是在工程中添加“Regtarge.c”文件 1、在main文件中包含 “stdio.h” 文件 2、在工程中創建一個文件保存為 Regtarge.c?, 然后將其添加工程中 在文件中輸入如下內容(直接復制即可) #include <stdio.h>
#include <rt_misc.h> #pragma import(__use_no_semihosting_swi) extern int? SendChar(int ch); // 聲明外部函數,在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
}
3、在main文件中添加定義以下兩個函數
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));
} 至此完成配置,可以在main文件中隨意使用 printf 。

總結

以上是生活随笔為你收集整理的STM32串口通信中使用printf发送数据配置方法 开发环境 Keil的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。