51微控制器上移植C語言的printf

2021-08-29 20:08:50 字數 1088 閱讀 6701

移植了c語言的printf()函式到51微控制器上,實現了在51微控制器的串列埠類pc端的printf()輸出。

在專案工程中新增xxprintf.h和xxprintf.c檔案

在專案中需要使用xxprintf()函式的地方引入標頭檔案xxprintf.h,在xxprintf.h中引入微控制器相關標頭檔案

在xxprintf.h中的maxsize 可根據需要調整最大輸出字元數量,例如修改為一下:

#define maxsize 40     //確定最長的輸出字元數量

意為輸出最大字元數量為40

使用格式示例(注意在51系列微控制器串列埠輸出中使用』\r\n』 作為換行符):

xxprintf(「1234」);

xxprintf(「1234\r\n」);

xxprintf(「aaa %d bbb\r\n」,num);

xxprintf(「aaa %c bbb\r\n」,ch);

#ifndef __xxprintf_h

#define __xxprintf_h

#include #include #include #include #define maxsize 50 //確定最長的輸出字元數量

//向串列埠傳送乙個字元

void send_char_com( char ch);

void send_string_com(char *p_str);

int xxprintf(const char *fmt, ...);

#endif

#include "xxprintf.h"

/* 傳送緩衝區 */

static char send_buff[maxsize];

/* 向串列埠傳送乙個字元 */

void send_char_com( char ch)

/* 向串列埠傳送乙個字串 */

void send_string_com(char *p_str)

}/* 模擬printf()函式的輸出 */

int xxprintf(const char *fmt, ...)

UCOS學習筆記 在51微控制器上移植UCOS

作業系統是一種與硬體 處理器 相關的軟體,根據某一種處理器設計的作業系統一般是不能再其他種類的處理器上執行的。若要在其他處理器上執行該作業系統,必須對作業系統進行相應的改造,即所謂作業系統的移植。一.ucos移植的一般性問題 1.可重入函式 在多工的作業系統中,系統提供的函式可以被多個任務呼叫,而不...

51微控制器C語言

使用c語言已成為微控制器應用系統開發的趨勢。include 包含微控制器暫存器的標頭檔案這個檔案對微控制器內部各種暫存器進行了定義。如果將 sfr p0 0x80 語句中的 p0 改為其他名字,如 q0 那麼在程式設計時,使用第一行的 檔案包含 處理命令後,微控制器以後就不再認識 p0 而是只認識 ...

第七章 在51微控制器上移植uc os 2

第七章 在51微控制器上移植 uc os 2 7.1 uc os 2移植的一般性問題 7.1.1可重入函式 1 多個任務呼叫同乙個函式,其中的全域性變數丟失產生錯誤。2 一般來說,乙個可重入函式只使用區域性變數,區域性變數儲存在堆疊中,如果一定要用,必須做保護。7.1.2時鐘節拍的產生 uc os ...