keil C51中使用sprintf問題
unsigned char count = 12;
UartInit();
TI = 1;
sprintf(pstr,"%d",count);
printf("%s\n",pstr);
如上將count定為unsigned char 型變數使用printf函式輸出時,會出現錯誤。將其定義為unsigned int型正確輸出。通過查閱資料(https://www.cnblogs.com/shirishiqi/p/5556469.html)發現原來是keil沒有記憶體對齊。同樣的函式在Visual Studio很好的就可以實現。(小白第一次記錄)
相關推薦
keil C51中使用sprintf問題
unsigned char count = 12; UartInit(); TI = 1; sprintf(pstr,"%d",count); printf("%s\n",pstr);如上將count定為unsigned char 型變數使用printf函式輸出時,會出現錯誤
Keil C51 中使用Printf()進行串列埠輸出。
如何使用printf在串列埠顯示資訊,有兩種辦法,因為在keil C51中 printf函式是呼叫putchar進行資料傳送的,而putchar應該是先判斷TI是否為1,不為1則等待為1。 如果為1則清0,然後送出一個字元。因此如果你直
keil c51中的data idata xdata code詳解
51微控制器採用哈佛結構。記憶體空間編址有重疊。可以在不同匯流排(本文稱其為匯流排域,簡稱域)上定義不同的變數。在keilc51中定義了data idata xdata code幾種域修飾符。這些修飾符決定了變數訪問方式。 data:用mov直接訪問的內部RAM idata
KEIL C51中的data、idata、xdata、code詳解
51微控制器採用哈佛結構。記憶體空間編址有重疊。可以在不同總線上定義不同的變數。在KEIL C51中定義了xdata、idata、xdata、code幾種域修飾符。這些修飾符決定了變數訪問方式。 data:固定指前面0x00-0x7F的128個RAM,可
[Keil-C51]在Keil C51中使用sizeof()的一點問題記錄
問題描述:利用51核的微控制器程式設計時,有時需要確切知道某個數值的位元組數大小(如AD採集時採集到的AD值會存放在n位的數值),除了查詢KeilC51的手冊進行驗證,另一種就是直接用sizeof()檢視。 sizeof():關於sizeof()的介紹網上有很多詳細的資料,這是一個操作符,所以使用
在keil c51中的一些關鍵字的用法
_at_代表絕對地址的意思: struct link list idata _at_ 0x40; /* 定義位於內部RAM低128位元組區0x40地址處的 結構體 */ char xdata text[256] _at_ 0xE000; /* 定義位於外部
慎用Keil C51中的using 關鍵字
今天除錯程式時發現程式一直表現很怪異,查了好久都沒發現問題,結果把一箇中斷程式定義處的 using 3 去掉,就全好了,看來using 3還是慎用為妙啊,否則自己得認真分析然後去分配暫存器組,這也太累了,否則編譯完的程式不定是什麼結果呢。
C51中的關鍵字和ANSIC標準關鍵字
edit str 使用 tle 靜態 類型 while循環 spa 功能 C51中的關鍵字和ANSIC標準關鍵字 作 者:武力戡亂 修改日期:2017-09-05 備 註: 1、總備註信息 2、聯系方式 3、其它博文鏈接:武力戡亂博客目錄總
Keil、uVision、RealView、MDK、Keil C51之間的區別
cortex-m 發的 都是 工具集 vision arm 不能 因此 單片機 Keil、uVision、RealView、MDK、Keil C51之間的區別 我們要區別的概念:KEIL uVision,KEIL MDK,KEIL For ARM,RealView M
keil c51軟體安裝教程
一、將軟體進行加壓 二、選擇其中的c51v954.exe檔案並執行 三、選擇其中的mdk523.EXE檔案並執行 四、啟動設定安裝路徑中的UV4.exe檔案執行 五、點選此處新增一些檔案 六、進行破解,點選編譯器的這個按鈕
keil C51程式碼優化等級介紹
keil優化等級圖示: 0級 Constan folding 常數合併:編譯器預先計算結果,儘可能用常數代替表示式。包括執行地址計算; 優化簡單訪問:編譯器優化訪問8051系統的內部資料和位地址; 跳轉優化:編譯器總是擴充套件跳轉到最終目標,多級跳轉指令被刪除;
C51中4X4鍵盤掃描(非反轉法)
#include <reg52.h> #define uchar unsigned char #define uint unsigned int uchar KEYIN; void DelayMs(uint ms); //延時函式宣告; uc
php中sprintf函式用法
在使用sprintf過程中,有時候會重複使用後面的引數 <?php $num = 5; $location = 'tree'; $format = 'The %2$s contains %1$d
在 keil MDK_V5中加入arm7,arm9等一些晶片型號
今天嵌入式原理課,老師給的keil軟體中含有的晶片但是我自己安裝的keil MDK中沒有這些晶片,在網上看到這個文章,自己照著做了後把晶片加了進去 最近有位同事接私活時遇到一個問題,用 Keil-5 可以開啟甲方給的工程,但是模擬和下載出錯。 根據報的錯誤,找到了
微控制器C語言指標意義淺析—Keil-C51
通常認為,C語言之所以強大,以及其自由性,很大部分體現在其靈活的指標運用上,甚至認為指標是C語言的靈魂。這裡說通常,是廣義上的,因為隨著程式語言的發展,指標也飽受爭議,並不是所有人都承認指標的“強大”和“優點”。在微控制器領域,指標同樣有著應用,本章節針對Keil C
Keil程式設計中Source Brower : "P17" is undefined!的問題
部落格原文:Keil程式設計中Source Brower : "P17" is undefined!的問題 在Keil新建工程中經常會遇到一個問題,去看某一個變數定義,然後跳轉不過去,並提示Source Brower : "某某" is undefined!,在這裡我就提供一種我遇到的問題以
Keil C51對C語言的關鍵詞擴充套件之八: far
far的出現,是Keil 編譯器為了支援新出現的8051家族增強型MCU,這些增強型MCU可能擁有大於64KB的儲存器。使用far可訪問擴充套件的RAM,使用const far可訪問擴充套件的ROM。 NXP 51MX架構51微控制器提供通過通用指標訪問多達8MB的code
Keil、uVision、MDK、Keil C51之間的區別比較
曾經有新手提問為什麼我裝的keil的軟體找不到89c51,或找不到stm32。今天特意發這一貼,希望對新手有所幫助。 KEIL是公司的名稱,有時候也指KEIL公司的所有軟體開發工具,目前2005年Keil由ARM公司收
同一系統下,keil 4和keil 5以及keil c51共存的解決方案
寫在前面>>> 這個方案是根據我自己的實踐結果所得到的,並沒有經過任何其他的驗證。方法很簡單,僅給大家一個參考。 環境>>>> 系統:win
Keil C51對C語言的關鍵詞擴充套件之十三: sfr
sfr用來定義特殊功能暫存器。用法如下: sfr name = address; name 為暫存器名字 address 為暫存器的地址 示例: sfr P0 = 0x80; /* P0口,地址為0x80 */ sfr P1 = 0x90;/* P1口,地址為0x90