stm32編程過程經(jīng)常定義變量類型,經(jīng)常擔(dān)心數(shù)據(jù)運算過程中 超過變量類型范圍。因為在編程過程中,不同的CPU,其數(shù)據(jù)類型的意義各不相同,所以一定要注意相應(yīng)變量數(shù)據(jù)類型的定義和轉(zhuǎn)換,否則在計算中可能會出現(xiàn)不確定的錯誤。所以下面列出常見數(shù)據(jù)類型:
一、C語言數(shù)據(jù)類型
stm32使用的數(shù)據(jù)類型定義在 stm32f4xx.h中
整型定義:
#include "core_cm4.h" /* Cortex-M4 processor and core peripherals */
#include "system_stm32f4xx.h"
#include /** @addtogroup Exported_types * @{ */ /*!< STM32F10x Standard Peripheral Library old types (maintained for legacy purpose) */ typedef int32_t s32; typedef int16_t s16; typedef int8_t s8; typedef const int32_t sc32; /*!< Read Only */ typedef const int16_t sc16; /*!< Read Only */ typedef const int8_t sc8; /*!< Read Only */ typedef __IO int32_t vs32; typedef __IO int16_t vs16; typedef __IO int8_t vs8; typedef __I int32_t vsc32; /*!< Read Only */ typedef __I int16_t vsc16; /*!< Read Only */ typedef __I int8_t vsc8; /*!< Read Only */ typedef uint32_t u32; /*常用類型*/ typedef uint16_t u16; typedef uint8_t u8; typedef const uint32_t uc32; /*!< Read Only */ typedef const uint16_t uc16; /*!< Read Only */ typedef const uint8_t uc8; /*!< Read Only */ typedef __IO uint32_t vu32; typedef __IO uint16_t vu16; typedef __IO uint8_t vu8; typedef __I uint32_t vuc32; /*!< Read Only */ typedef __I uint16_t vuc16; /*!< Read Only */ typedef __I uint8_t vuc8; /*!< Read Only */ 浮點型: #if !defined(__STRICT_ANSI__) || defined(__USE_C99_MATH) /* C99 additions */ typedef float float_t; typedef double double_t; 注:還有float 浮點型 編譯器中不能看到其定義(估計已編譯了)。 而uint32_t 、uint16_t、uint8_t在哪里定義?在stdint.h文件中,詳見下面: /* exact-width signed integer types */ typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t; typedef signed __int64 int64_t; /* exact-width unsigned integer types */ typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned __int64 uint64_t; /* minimum values of exact-width signed integer types */ #define INT8_MIN -128 /* s8 占用1個byte,數(shù)據(jù)范圍 -2^7 到 (2^7-1) */ #define INT16_MIN -32768 /* s16 占用2個byte,數(shù)據(jù)范圍 -2^15 到 (2^15-1) */ #define INT32_MIN (~0x7fffffff) /* -2147483648 is unsigned s32 占用 4個byte,數(shù)據(jù)范圍 -2^31 到 (2^31-1) */ #define INT64_MIN __ESCAPE__(~0x7fffffffffffffffll) /* -9223372036854775808 is unsigned int64_t占用8個byte,數(shù)據(jù)范圍 -2^63 到 (2^63-1) */ /* maximum values of exact-width signed integer types */ #define INT8_MAX 127 #define INT16_MAX 32767 #define INT32_MAX 2147483647 #define INT64_MAX __ESCAPE__(9223372036854775807ll) /* maximum values of exact-width unsigned integer types */ #define UINT8_MAX 255 /* u8 占用1個byte, 數(shù)據(jù)范圍 0 - 2^8*/ #define UINT16_MAX 65535 /* u16 占用2個byte, 數(shù)據(jù)范圍 0 - 2^16*/ #define UINT32_MAX 4294967295u /* u32 占用4個byte, 數(shù)據(jù)范圍 0 - 2^32*/ #define UINT64_MAX __ESCAPE__(18446744073709551615ull) 由上述可知: 1、有符號整型 s8 占用1個byte,數(shù)據(jù)范圍 -2^7 到 (2^7-1) s16 占用2個byte,數(shù)據(jù)范圍 -2^15 到 (2^15-1) s32 占用 4個byte,數(shù)據(jù)范圍 -2^31 到 (2^31-1)2^31 = 2147483647 int64_t占用8個byte,數(shù)據(jù)范圍 -2^63 到 (2^63-1) 2^63 = 9223372036854775807ll 2、無符號整型 u8 占用1個byte, 數(shù)據(jù)范圍 0 - 2^8 u16 占用2個byte, 數(shù)據(jù)范圍 0 - 2^16 u32 占用4個byte, 數(shù)據(jù)范圍 0 - 2^32 2^32 = 4294967295 uint64_t 占用8個byte, 數(shù)據(jù)范圍 0 - 2^64 2^64 = 18446744073709551615 3、浮點型 float ——4個byte,有符號型,可以表達(dá)負(fù)數(shù)/小數(shù); Float 類型至少要能精確表示到小數(shù)點后6位。 double——8個byte,有符號型,可以表達(dá)負(fù)數(shù)/小數(shù);Double 類型至少要能精確到小數(shù)點后 10 位。 二、不同數(shù)據(jù)類型混合運算 在C語言中,不同類型的數(shù)據(jù)間是可以混合運算的。在進(jìn)行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運算。轉(zhuǎn)換的規(guī)則如下: 注意:箭頭的方向只表示數(shù)據(jù)類型級別的高低,由低向高轉(zhuǎn)換,這個轉(zhuǎn)換過程是一步到位的。 (三)數(shù)據(jù)類型轉(zhuǎn)換規(guī)則 各類數(shù)據(jù)類型的轉(zhuǎn)換,分為兩種方式:隱式(編譯軟件自動完成),顯式(程序強(qiáng)制轉(zhuǎn)換) 隱式轉(zhuǎn)換規(guī)則: 字符必須先轉(zhuǎn)換為整數(shù)(C語言規(guī)定字符類型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用) short型轉(zhuǎn)換為int型(同屬于整型) float型數(shù)據(jù)在運算時一律轉(zhuǎn)換為雙精度(double)型,以提高運算精度(同屬于實型) 賦值時,一律是右部值轉(zhuǎn)換為左部類型 [注] 當(dāng)整型數(shù)據(jù)和雙精度數(shù)據(jù)進(jìn)行運算時,C先將整型數(shù)據(jù)轉(zhuǎn)換成雙精度型數(shù)據(jù),再進(jìn)行運算,結(jié)果為雙精度類型數(shù)據(jù) 當(dāng)字符型數(shù)據(jù)和實型數(shù)據(jù)進(jìn)行運算時,C先將字符型數(shù)據(jù)轉(zhuǎn)換成實型數(shù)據(jù),然后進(jìn)行計算,結(jié)果為實型數(shù)據(jù) 顯式轉(zhuǎn)換規(guī)則: 例:(int)(x+y); 注:強(qiáng)制類型轉(zhuǎn)換時,得到一個所需要的中間變量,原來變量的類型未發(fā)生變化。
上一篇:使用Ulink2的JTAG與SWD 調(diào)試stm32 區(qū)別
下一篇:stm32常用數(shù)據(jù)類型 U8、U16、U32到底代表什么?
推薦閱讀
史海拾趣
Curtis Industries公司一直將品質(zhì)管理作為企業(yè)發(fā)展的核心。公司建立了完善的品質(zhì)管理體系,從原材料采購到產(chǎn)品生產(chǎn)、檢測等各個環(huán)節(jié)都嚴(yán)格把控品質(zhì)。同時,公司還引入了先進(jìn)的生產(chǎn)設(shè)備和技術(shù),確保產(chǎn)品質(zhì)量達(dá)到行業(yè)最高標(biāo)準(zhǔn)。這種對品質(zhì)的嚴(yán)格把控贏得了客戶的信任和好評,也為公司的長期發(fā)展提供了有力保障。
在DAQ Electronics LLC公司的發(fā)展歷程中,質(zhì)量一直是其堅守的核心原則。公司建立了嚴(yán)格的質(zhì)量控制體系,從原材料采購到產(chǎn)品生產(chǎn)、檢測、包裝等各個環(huán)節(jié)都進(jìn)行嚴(yán)格把控。這種對質(zhì)量的堅持,使得DAQ Electronics LLC公司的產(chǎn)品在市場上獲得了良好的口碑和信譽(yù)??蛻魧镜漠a(chǎn)品和服務(wù)給予了高度評價,也為公司的持續(xù)發(fā)展提供了有力保障。
為了進(jìn)一步提升競爭力,ABL公司開始實施國際化發(fā)展戰(zhàn)略。公司首先在海外市場設(shè)立了銷售分支機(jī)構(gòu),積極開拓國際市場。隨后,ABL公司又在海外建立了生產(chǎn)基地,利用當(dāng)?shù)刭Y源和優(yōu)勢降低生產(chǎn)成本。通過國際化發(fā)展,ABL公司不僅擴(kuò)大了市場份額,還提高了品牌的國際影響力。
進(jìn)入1950年代,E-T-A公司開始關(guān)注固態(tài)遠(yuǎn)程電源控制器(SSRPCs)的研發(fā)。這一創(chuàng)新技術(shù)為電氣系統(tǒng)提供了更加可靠和高效的電源管理方案。公司投入大量資源進(jìn)行研發(fā),成功推出了多款固態(tài)遠(yuǎn)程電源控制器產(chǎn)品,這些產(chǎn)品在市場上獲得了廣泛認(rèn)可,并為公司帶來了可觀的收益。
為了確保產(chǎn)品質(zhì)量和客戶滿意度,思博科技高度重視質(zhì)量管理體系建設(shè)。公司引進(jìn)了先進(jìn)的質(zhì)量管理理念和工具,建立了完善的質(zhì)量管理體系。同時,公司還通過了ISO9001質(zhì)量管理體系認(rèn)證和多項行業(yè)認(rèn)證。這些認(rèn)證不僅證明了公司在質(zhì)量管理方面的實力,還為客戶提供了可靠的質(zhì)量保證。
除了提供優(yōu)質(zhì)的產(chǎn)品外,AEMC Instruments公司還注重服務(wù)升級和客戶關(guān)懷。公司建立了完善的客戶服務(wù)體系,提供售前咨詢、售后技術(shù)支持等全方位服務(wù)。同時,公司還定期舉辦技術(shù)培訓(xùn)和交流活動,幫助客戶更好地使用和維護(hù)產(chǎn)品。這些舉措不僅提高了客戶的滿意度和忠誠度,也促進(jìn)了公司與客戶的長期合作關(guān)系。
以上五個故事是基于AEMC Instruments公司的發(fā)展情況所做出的概括性描述,旨在展示公司在電子行業(yè)中的成長歷程和取得的成就。當(dāng)然,具體的發(fā)展故事還需要根據(jù)公司的實際情況和歷史記錄來深入挖掘和呈現(xiàn)。
小弟大四了,學(xué)的是軟件工程。對C相當(dāng)熟悉,在.NET平臺上作過幾個簡單設(shè)計。 前不久找了份工作,是個手機(jī)通訊設(shè)備公司。筆試面試由于我C語言比較好,就給了我OFFER,簽了。 由于忙畢設(shè)(一個BS工程),無法提前到公司實 ...… 查看全部問答∨ |
|
記得在WINDOWS 程序里面,只要把一個字段綁定到一個文本框上,然后修改文本框,之后就自動提交了,我在WINCE里也這樣設(shè)置的,但是我更改了文本框之后,發(fā)現(xiàn)刷新不了,不知道什么原因。 我就是用了個dataset.acceptchanges() 不起作用啊?!? 查看全部問答∨ |
|
各類色度處理技術(shù) 1、基色波長的選擇 LED顯示屏在各行各業(yè)有著非常廣泛的應(yīng)用,而在不同的應(yīng)用場所對LED的基色波長有著不同的要求,對于LED基色波長的選擇有些是為了取得良好的視覺效果,有些是為了符合人們的習(xí)慣,而有些更是行業(yè)標(biāo)準(zhǔn) ...… 查看全部問答∨ |
有誰能把STM32庫函數(shù)這三句TIM1_TimeBaseStructInit最基本的通俗解釋一下 TIM1_TimeBaseInitTypeDef TIM1_TimeBaseStructure;TIM1_OCInitTypeDef TIM1_OCInitStructure;TIM1_BDTRInitTypeDef TIM1_BDTRInitStructure; 我知道是初始化操作 … 查看全部問答∨ |
本帖最后由 強(qiáng)仔00001 于 2015-5-25 00:43 編輯 最近多事,有些忙不過來了,原本自己想用ADXL345做個可以計步的手環(huán)。可惜還沒完成,程序還在寫?;仡櫹伦约簬讉€月來的學(xué)習(xí),也得到了不少的收獲。還有很多東西要向論壇里的大大們學(xué)習(xí)。到了月底才 ...… 查看全部問答∨ |
當(dāng)處理器執(zhí)行一條內(nèi)存訪問指令或者分支指令或者取下一條指令時需要計算有效地址。如果有效地址和操作數(shù)長度之和超過最大的有效地址邏輯空間,內(nèi)存操作數(shù)將從最大有效地址環(huán)回到有效地址 0。 1. 寄存器間接尋址裝載和存儲指令使用這種尋址方式。16 ...… 查看全部問答∨ |
正好,今天打樣的PCB回來了,先睹為快。 背面一個ATMEL ATmega48作主控。正面是數(shù)字顯示面。不使用產(chǎn)生閃爍感的掃描驅(qū)動,28個筆段不夠用,所以設(shè)計用74HC164來做串行鎖存。板子的左右兩邊是對稱的,可以割開了只用一半,做定時器啥的也可以 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 中國研究人員發(fā)明全新動作好奇心算法 增強(qiáng)不確定環(huán)境下的自主導(dǎo)航
- 技術(shù)解析|沃爾沃XC70超級混動有什么亮點?
- 小米汽車:磁吸物理按鍵已接入米家,可通過APP操控
- 專家專論 | 顧劍民:L2級輔助駕駛激光雷達(dá)“價格歸零”
- 近一個月投資五家!京東密集落子具身智能機(jī)器人賽道
- 海外動力電池裝車量TOP10:3家落榜 一新上榜中企暴增逾10倍
- 吉利汽車:全域AI守護(hù)輔助駕駛安全
- 松下汽車系統(tǒng)與VicOne深化合作 共拓新一代智能座艙系統(tǒng)安全創(chuàng)新
- 汽車MCU的“芯”浪潮
- 具身智能如何大規(guī)模推廣?丨具身智能機(jī)器人高質(zhì)量發(fā)展
- VISHAY工業(yè)電源主題月 幸運闖關(guān)贏大獎!
- 再續(xù)點評Vishay視頻 搶樓拿獎進(jìn)行到底
- 共抗疫情,少出門多學(xué)習(xí)。領(lǐng)取下載積分,讓學(xué)習(xí)資料到你碗里!
- EEWorld有獎主題征文來了~現(xiàn)金獎勵等你來拿!
- 看是德科技5G精彩專題,讓你了解更多關(guān)于5G的那些事~ 下載贏好禮!
- 4月25日上午10:00-11:30 ADI與您相約 TOF (Time Of Flight) 技術(shù)介紹及產(chǎn)品應(yīng)用 有獎直播
- 下載資料贏好禮!看Vicor模塊化電源解決方案如何推動創(chuàng)新
- 有獎直播 | Keysight World Tech Day:從功率到 AI 的全面芯片測試研討會
- Dialog半導(dǎo)體公司率先推出汽車級可配置混合信號IC
- 瑞薩創(chuàng)新型汽車電子芯片 應(yīng)用于ProPILOT 2.0智控領(lǐng)航系統(tǒng)
- 賽靈思副總裁:5G如何使數(shù)據(jù)價格更便宜
- 車載導(dǎo)航GPS系統(tǒng)中數(shù)字壓力傳感器的應(yīng)用分析
- 10年后,一個眼神就能開車了?
- 人工智能芯片、區(qū)塊鏈被寫進(jìn)新規(guī)劃,北京欲用五大技術(shù)撬
- 軟銀集團(tuán)拆分旗下移動電信部門,將于12月9日上市
- 看我72變,倪飛盛贊努比亞X化身各大手機(jī)品牌
- 大興區(qū)2018年年底前將建成8KM自動駕駛測試道路
- 都是第一?榮耀與小米都說自己是雙十一手機(jī)冠軍