娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月01日(星期日)

2018年06月01日 | STM8 STM32 數(shù)據(jù)類型

發(fā)布者:boczsy2018 來(lái)源: eefocus關(guān)鍵字:STM8  STM32  數(shù)據(jù)類型 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

首先說(shuō)一下編程過(guò)程中幾個(gè)步驟吧

第一,選擇一門語(yǔ)言,C語(yǔ)言或匯編語(yǔ)言,嵌入式編程一般目前流行還是C,這個(gè)需要基礎(chǔ)與時(shí)間

第二讀懂了解 MCU的寄存器各寄存器的功能,尤其是一些IO口設(shè)置,各模塊時(shí)鐘設(shè)置比如定時(shí)器,I2C,同步異步串口,PWM等等,以前的話51的話沒(méi)有這樣設(shè)置。而現(xiàn)在MCU基本上各模塊時(shí)鐘都分開(kāi)了。這個(gè)可以看官方數(shù)據(jù)說(shuō)明書就可以了。

其實(shí)程的目的就是設(shè)置一系列寄存器.并根據(jù)你設(shè)計(jì)程序流程去執(zhí)行它,期間可能加入了你設(shè)計(jì)好的一些算法,和數(shù)學(xué)公式。進(jìn)行計(jì)算,或執(zhí)行。

第三,你有一塊你的實(shí)驗(yàn)板就如這次STM32推的F429KEIL <wbr>MDK的數(shù)據(jù)類型及兩個(gè)重要關(guān)鍵詞volatile& <wbr>const,你還需要下載程序的編程器。就是把編譯器編譯好的代碼下載到你的目標(biāo)實(shí)驗(yàn)板上,不過(guò)ST推的多數(shù)實(shí)驗(yàn)班都是自帶USB串口的程序下載器。比如STM32F429就自帶了

第四,你還需要了解的是編譯器,編譯器的數(shù)據(jù)類型一些定義,及有些編譯器的可能自帶內(nèi)建函數(shù),這個(gè)不必須了解。否則無(wú)法編程。

本文主要就介紹STM32的數(shù)據(jù)類型的基礎(chǔ)知識(shí)。以及一些關(guān)鍵詞的意義。

 ▲在KELI MDK數(shù)據(jù)類型中進(jìn)了如下定義

char占用1個(gè)字節(jié)

short int占用2字節(jié)

int占用4字節(jié)

long占用4字節(jié)

long int占用4字節(jié)

float占用4字節(jié)

double占用8字節(jié)

即有如下宏定義

typedef unsigned char    uint8;      // 無(wú)符號(hào)8位字符型變量

typedef signed   char    int8;       // 有符號(hào)8位字符型變量
typedef unsigned short   uint16;     // 無(wú)符號(hào)16位短整型變量
typedef signed   short   int16;      // 有符號(hào)16位短整型變量
typedef unsigned int     uint32;     // 無(wú)符號(hào)32位整型變量
typedef signed   int     int32;      // 有符號(hào)32位整型變量

typedef float            fp32;       // 單精度浮點(diǎn)數(shù)(32位長(zhǎng)度)

typedef double           fp64;       // 雙精度浮點(diǎn)數(shù)(64位長(zhǎng)度)

 

 

注:C語(yǔ)言中的種類數(shù)據(jù):整型:int short long 實(shí)型:float, double 。

其中,Unsigned 為無(wú)符號(hào), signed  有符號(hào)。

 ▲STM32的數(shù)據(jù)類型的宏定義

STM32采用了大量的固件庫(kù),其中在2.0庫(kù)中有24個(gè)數(shù)據(jù)類型如下
typedef unsigned char u8;0~255一字節(jié)

typedef signed char s8;-128~127

typedef volatile unsigned char vu8;

typedef volatile signed char vs8;

typedef unsigned char const uc8;

typedef signed char const sc8;

typedef volatile unsigned char const vuc8;

typedef volatile signed char const vsc8;

typedef unsigned short u16; 0~65535兩字節(jié)

typedef signed short s16; -32768~32767兩字節(jié)

typedef volatile unsigned short vu16;

typedef volatile signed short vs16;

typedef unsigned short const uc16;

typedef signed short const sc16;

typedef signed short const sc16;

typedef volatile unsigned short const vuc16;

typedef volatile signed short const vsc16;

typedef unsigned long u32; 0~(2^32-1)四字節(jié)

typedef signed long s32;

typedef signed long const sc32;

typedef volatile unsigned long const vuc32;

typedef volatile signed long const vsc32;

對(duì)部分?jǐn)?shù)據(jù)類型后面作了注釋,其它類型類推。

 

 ▲ 關(guān)于兩個(gè)關(guān)鍵詞說(shuō)明 volatile& const

(1)volatile :這個(gè)關(guān)鍵字,很多人只知道用,不知道其含義,有介紹解釋是不易被編譯器優(yōu)

                  化的。在STM32資料中解釋加了易揮發(fā)的變量。這些解釋都是含糊不清的。

                  為此筆者專門查了下這個(gè)修飾關(guān)鍵字含義

通俗的解釋:    隨時(shí)會(huì)改變,并被多函數(shù)調(diào)用可以加volatile修飾。

                  簡(jiǎn)稱易變變量或易揮發(fā)變量。

                  表示這個(gè)變量的真的很容易變。

進(jìn)階解釋:  加了這個(gè)volatile意義就是在每次取這個(gè)變量值的時(shí)候,要求不是取它上次在某個(gè) 時(shí)候取的臨時(shí)緩存變量(比如說(shuō)暫存在某個(gè)寄存器中),而是直接到內(nèi)存中取。

個(gè)人經(jīng)驗(yàn): 告訴編譯器,volatile定義的變量必須RAM變量.不能是寄存器變量.

              尤其是中斷中用   全局變量一定要加volatile。

(2)const: 在定義變量時(shí)候,如果加上關(guān)鍵詞const,則變量的值在程序運(yùn)行期間不能改變,當(dāng)然不能再賦值了。這種變量稱為常變量(constant variable)或是只讀變量(read-only-variable,這樣覺(jué)得更恰當(dāng))。

 ▲  STM32F10x_StdPeriph_Driver 3.0以后的版本中使用了CMSIS數(shù)據(jù)類型

3.0以后版本與之前版本變量的定義有所不同,但是出于兼容舊版本的目的,以上的數(shù)據(jù)類型仍然兼容。CMSIS的IO類型限定詞如表 3所示,CMSIS和STM32固件庫(kù)的數(shù)據(jù)類型對(duì)比如表 5所示。這些數(shù)據(jù)類型可以在

    STM32F10x_StdPeriph_Lib_V3.4.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

\stm32f10x.h中找到具體的定義。

▲ 數(shù)據(jù)類型和IO類型限定詞

   Cortex-Mx HAL使用標(biāo)準(zhǔn)ANSI C頭文件定義的標(biāo)準(zhǔn)類型。特別用類型限定詞IO來(lái)訪問(wèn)外設(shè)的變量。         表3 數(shù)據(jù)類型限定詞IO。

 

IO類型限定詞

#define

描述

__I

volatile const

只讀訪問(wèn)

__O

volatile

只寫訪問(wèn)

__IO

volatile

讀和寫訪問(wèn)

 

 

▲ ST從庫(kù)包中移除了文件”stm32f10x_type.h”,新的庫(kù)使用CMSIS和定義的數(shù)據(jù)類型。

表5展示了STM32F10xxx和之間數(shù)據(jù)類型的一一對(duì)應(yīng)關(guān)系。

     表5  STM32F10xxx固件庫(kù)V2.0.3與CMSIS數(shù)據(jù)類型對(duì)比

 

STM32F10xxx固件庫(kù)類型

CMSIS類型

描述

s32

int32_t

有符號(hào)32位數(shù)據(jù)

s16

int16_t

有符號(hào)16位數(shù)據(jù)

s8

int8_t

有符號(hào)8位數(shù)據(jù)

sc32

const int32_t

只讀有符號(hào)32位數(shù)據(jù)

sc16

const int16_t

只讀有符號(hào)16位數(shù)據(jù)

sc8

const int8_t

只讀有符號(hào)8位數(shù)據(jù)

vs32

__IO int32_t

易揮發(fā)讀寫訪問(wèn)有符號(hào)32位數(shù)據(jù)

vs16

__IO int16_t

易揮發(fā)讀寫訪問(wèn)有符號(hào)16位數(shù)據(jù)

vs8

__IO int8_t

易揮發(fā)讀寫訪問(wèn)有符號(hào)8位數(shù)據(jù)

vsc32

__I int32_t

易揮發(fā)只讀有符號(hào)32位數(shù)據(jù)

vsc16

__I int16_t

易揮發(fā)只讀有符號(hào)16位數(shù)據(jù)

vsc8

__I int8_t

易揮發(fā)只讀有符號(hào)8位數(shù)據(jù)

u32

uint32_t

無(wú)符號(hào)32位數(shù)據(jù)

u16

uint16_t

無(wú)符號(hào)16位數(shù)據(jù)

u8

uint8_t

無(wú)符號(hào)8位數(shù)據(jù)

uc32

const uint32_t

只讀無(wú)符號(hào)32位數(shù)據(jù)

uc16

const uint16_t

只讀無(wú)符號(hào)16位數(shù)據(jù)

uc8

const uint8_t

只讀無(wú)符號(hào)8位數(shù)據(jù)

vu32

__IO uint32_t

易揮發(fā)讀寫訪問(wèn)無(wú)符號(hào)32位數(shù)據(jù)

vu16

__IO uint16_t

易揮發(fā)讀寫訪問(wèn)無(wú)符號(hào)16位數(shù)據(jù)

vu8

__IO uint8_t

易揮發(fā)讀寫訪問(wèn)無(wú)符號(hào)8位數(shù)據(jù)

vuc32

__I uint32_t

易揮發(fā)只讀無(wú)符號(hào)32位數(shù)據(jù)

vuc16

__I uint16_t

易揮發(fā)只讀無(wú)符號(hào)16位數(shù)據(jù)

vuc8

__I uint8_t

易揮發(fā)只讀無(wú)符號(hào)8位數(shù)據(jù)

 

 

▲注意出于兼容舊版本的目的文件”stm32f10x.h”中仍然定義了STM32F10xxx固件庫(kù)原有數(shù)據(jù)類型。

  文件”stm32f10x.h”中也定義了STM32F10xxx固件庫(kù)專用類型.

它們是:typedef enum {FALSE = 0, TRUE = !FALSE} bool;

typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;

typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;

#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))

typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;



關(guān)鍵字:STM8  STM32  數(shù)據(jù)類型 引用地址:STM8 STM32 數(shù)據(jù)類型

上一篇:IAR創(chuàng)建STM8S103庫(kù)函數(shù)模板問(wèn)題
下一篇:STM8中斷的設(shè)置(ST Visual Develop和IAR環(huán)境下)

推薦閱讀

  芯片開(kāi)發(fā)商Arm宣布對(duì)CPU與GPU的一系列改進(jìn),當(dāng)芯片在Windows筆記本上運(yùn)行時(shí),性能大幅提升?! rm公司IP產(chǎn)品部門(IP Products Group)總裁雷內(nèi)·哈斯(Rene Haas)在博客中介紹稱,新Arm Cortex-A76 CPU在處理效率型應(yīng)用(productivity applications)時(shí),性能比一年前增強(qiáng)35%。他還說(shuō),新推出的Mali-G76 GPU處理無(wú)線游戲和設(shè)備內(nèi)機(jī)器學(xué)習(xí)應(yīng)...
香港理工大學(xué)宣布,該校研究團(tuán)隊(duì)研發(fā)了一種超柔軟的高效能織物鋰電池,能為可穿戴電子產(chǎn)品提供更穩(wěn)定、耐用和安全的能源供應(yīng),可應(yīng)用于醫(yī)療健康監(jiān)測(cè)、智能紡織品等多個(gè)范疇。這款創(chuàng)新的織物鋰電池能量密度高達(dá)超過(guò)450瓦時(shí)/公升,柔軟度極佳,可折疊彎曲至半徑小于1毫米,即使折疊超過(guò)1000次,其效能仍然保持不變。 一般的可彎曲鋰電池只能彎曲至半徑約25...
愛(ài)立信官網(wǎng)數(shù)據(jù)顯示,目前愛(ài)立信已經(jīng)斬獲91個(gè)5G商用合同,其中愛(ài)立信已經(jīng)與48家運(yùn)營(yíng)商客戶達(dá)成可公示的5G商用合同,目前在22個(gè)國(guó)家為39個(gè)已經(jīng)正式運(yùn)行的5G商用網(wǎng)絡(luò)提供設(shè)備。 而在愛(ài)立信官網(wǎng)展示的48個(gè)可公示的5G商用合同和為其提供5G網(wǎng)絡(luò)設(shè)備的39個(gè)已經(jīng)正式運(yùn)行的5G商用網(wǎng)絡(luò)中,...
5月25日,中國(guó)智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)創(chuàng)新聯(lián)盟創(chuàng)新應(yīng)用工作組組長(zhǎng)劉衛(wèi)國(guó)在中國(guó)智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)創(chuàng)新聯(lián)盟2021年度會(huì)議上就《智能網(wǎng)聯(lián)汽車創(chuàng)新應(yīng)用路線圖》(以下簡(jiǎn)稱“《創(chuàng)新應(yīng)用路線圖》”)編制背景和核心內(nèi)容進(jìn)行了發(fā)布。中國(guó)智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)創(chuàng)新聯(lián)盟創(chuàng)新應(yīng)用工作組組長(zhǎng)劉衛(wèi)國(guó)《創(chuàng)新應(yīng)用路線圖》于2021年1月18日啟動(dòng)編制,得到了行業(yè)內(nèi)眾多企業(yè)和專家的高度關(guān)...

史海拾趣

問(wèn)答坊 | AI 解惑

嵌入式系統(tǒng)學(xué)習(xí)日志

1.嵌入式系統(tǒng)的定義:是現(xiàn)代科學(xué)多學(xué)科互相融合的以應(yīng)用技術(shù)產(chǎn)品為核心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),以通訊技術(shù)為載體,以消費(fèi)類產(chǎn)品為對(duì)象,引入各類傳感器,進(jìn)入Internet網(wǎng)絡(luò)技術(shù)的連接,從而適應(yīng)應(yīng)用環(huán)境的產(chǎn)品。 2.嵌入式系統(tǒng)無(wú)多余軟件,軟件以固化 ...…

查看全部問(wèn)答∨

c51編程,讀端口,還要不要先輸出1?

我怎么看到有的要,有的不要,請(qǐng)高手給講講,到底咋回事?謝了…

查看全部問(wèn)答∨

大唐LC6311

有誰(shuí)用過(guò)大唐LC6311....我們想打開(kāi)其他串口。。請(qǐng)問(wèn)怎么發(fā)AT命令…

查看全部問(wèn)答∨

EE_FPGA_V1.0初學(xué)者DIY進(jìn)展

上圖先: 1、拿到板子后,開(kāi)始查看(貌似沒(méi)給我發(fā)LED,可能是玄空大師裝掉了吧,幸好之前的板子上還有,拆了下來(lái) ),率先把EP2C5Q208、SDRAM、FLASH、PL2303焊上,拖了半天,還是給拖上去了,哈哈! 2、把104的電容全焊上,對(duì)照位號(hào)找了大半天呢 ...…

查看全部問(wèn)答∨

創(chuàng)意無(wú)處不在——DIY 檸檬電池發(fā)電的做法之二

在使用酸的電池制造方式中需要兩種不同的金屬。銅和鋅是非常好的選擇,因?yàn)樗鼈兡芎蜋幟手械臋幟仕嵝纬珊芎玫乃嵝噪姵丨h(huán)境。 Batteries like this will not be able to run a motor or energize most light bulbs. It is possible to produce a di ...…

查看全部問(wèn)答∨

請(qǐng)大家注意用電安全

看見(jiàn)了幾個(gè)帖子采用阻容降壓或者直接使用市電的線路圖,感覺(jué)有必要提醒一下大家。此類線路制作起來(lái)簡(jiǎn)單,但是一定要注意用電安全,要采取好必要的安全措施。或者是人體無(wú)法接觸到的,或者您的電氣線路上的漏電保護(hù)裝置能可靠動(dòng)作。在論壇里以前有過(guò) ...…

查看全部問(wèn)答∨

誰(shuí)有74系列芯片測(cè)試儀設(shè)計(jì)啊???跪求啊

本帖最后由 paulhyde 于 2014-9-15 09:38 編輯 最好是基于AT89S52單片機(jī)的!?。。。。〖庇冒?!不會(huì)啊!暈暈的??!  …

查看全部問(wèn)答∨

u-boot-2010.06移植到TQ2440過(guò)程

移植了半個(gè)月,一個(gè)國(guó)慶假期都被我用掉了,終于把u-boot移植到了我的TQ2440,做了一些記錄貼出來(lái)吧!   環(huán)境:Windows XP + 虛擬機(jī)Fedora14交叉編譯器:arm-linux-gcc-4.3.2(EABI)u-boot版本:u-boot-2010-06.tar.bz2開(kāi)發(fā)板資源: TQ2440Nor ...…

查看全部問(wèn)答∨

求救!

STA8058它輸出的是什么 是N碼格式 還是自己定義的啊,PDF沒(méi)說(shuō)啊?!?

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 扶沟县| 阜城县| 龙陵县| 巩留县| 志丹县| 怀宁县| 若羌县| 嫩江县| 陆丰市| 盈江县| 玛纳斯县| 昌平区| 淮安市| 龙海市| 故城县| 高雄县| 孝义市| 吕梁市| 镇江市| 海丰县| 漳州市| 日土县| 饶平县| 墨江| 吴江市| 石河子市| 永胜县| 兴安县| 乌鲁木齐县| 景宁| 日喀则市| 宜宾县| 娱乐| 和田市| 临湘市| 淳安县| 正宁县| 广宁县| 顺义区| 新邵县| 西畴县|