❶ 怎麼看keil編譯器定義的數據類型佔多少位
辦法1:直接在代碼中,使用sizeof運算符,例如a=sizeof(int),那麼a的值就是int的長度。
辦法2:編譯成功後,打開.map文件(或.m51),查找SYMBOL
例如:
00000036H SYMBOL DATA BYTE temp
00000037H SYMBOL DATA BYTE temp2
temp,temp2是變數名,00036H是變數起始地址,DATA表示在data區,BYTE表示變數是BYTE型的,也就是一個位元組。你可以通過不同變數的地址差來計算長度。
❷ keil c51編譯器所支持的基本數據類型中,char是什麼,int是什麼
char 是字元型,character的縮寫。
int 是整型,integer的縮寫。
網路嫌我字數不夠
❸ keil c51 C語言編譯生成的 什麼類型的文件 能下載到單片機
是HEX文件!
❹ 我的Keil編譯數組出現問題, 比如我定義unsigned char ascii[]或者unsigned int color[]這類數組
KEIL編譯器雖然有時候會犯點莫名其妙的問題,但像你這種錯誤應該是不會犯的。你首先要明確你的硬體能支持多大的RAM,再來看。如果你的數組是常量,那這樣定義:code unsigned char ascii[],code unsigned int color[],如果數組是變數,那就要具體情況具體分析了,在此不做一一描述,你可以把你選用的晶元類型,數組是全局的還是局部的,最大實際使用時的數組大小都列出來,大家幫你看看。另外,嵌入式開發不同於PC程序的開發,PC程序的內存幾乎是無限的,而嵌入式開發是要精打細算的,能把數組大小定下來就盡量定下來,想辦法優化程序盡量避免大數組,在不影響性能的情況下,盡量把變數放到XDATA中去,盡量避免函數多層嵌套。
❺ KEIL用C語言編譯STM32晶元數據類型無法賦值的問題
沒有遇到這樣的問題,一般都成功
unsigned int Var1 = (unsigned int)(float Var2);
如果這樣都是0的話,那麼Var2可能本身就是0,如果需要驗證Var2是否本身就是0,可以用聯合體的方式定義變數,然後查看一下。
❻ keil編譯時stc12c5a60s2與atmel什麼單片機對應,應該如何選擇單片機類型
把STC單片機當做一般的AT51單片機即可。若是用C語言編譯STC單片機的話,你只需在
頭文件
里包含<reg51.h>和相應的STC單片機的頭文件即可,STC單片機的頭文件在宏晶的主頁就可以下載。
❼ keil編譯的問題求助
定義函數和聲明不一致
你檢查下你的函數定義和聲明等格式問題
報的錯誤大概是要你用ANSI C標準的聲明 你看你聲明時明確說明參數沒,你搬函數到main前刪了你的聲明沒,試試刪了看看,我覺得是你聲明問題,估計就是你聲明函數沒聲明變數,就是聲明只放void delay();有假如有參數unsigned int i的應該這么聲明void delay(unsigned int i); 或者是聲明變數類型和定義不一樣;
那你看看你的函數定義聲明和使用在程序的位置是否符合規范
❽ keil編譯時stc12c5a60s2與atmel什麼單片機對應,應該如何選擇單片機類型
把STC單片機當做一般的AT51單片機即可。若是用C語言編譯STC單片機的話,你只需在頭文件里包含<reg51.h>和相應的STC單片機的頭文件即可,STC單片機的頭文件在宏晶的主頁就可以下載。
❾ keil 怎麼用編譯匯編程序
keil編譯匯編程序跟編譯C程序操作方法是一樣的。步驟如下:
1、建一個工程
2、添加或新建一個匯編文件
3、編輯這個匯編文件程序
4、點擊編譯命令進行編譯
如果沒有錯誤就可以生成HEX文件了。