一、C語言之預(yù)處理
預(yù)處理有三種:宏定義、條件編譯、文件包含。
1.1、宏定義
#define EXT extern // 用EXT代替extern關(guān)鍵字
1.2、文件包含
#include “stm32f10x.h”
1.3、條件編譯
防止同一個頭文件被不同的文件多次包含,編譯時所有文件編譯成一個可執(zhí)行文件有大量命名沖突。
#ifndef <標(biāo)識符> //if not defined
#define <標(biāo)識符>
代碼段落
#endif
#ifndef _public_h
#define _public_h
#include "public.h"
#endif
#空指令,無任何效果
#include包含一個源代碼文件
#define定義宏
#undef取消已定義的宏
#if如果給定條件為真,則編譯下面代碼
#ifdef如果宏已經(jīng)定義,則編譯下面代碼
#ifndef如果宏沒有定義,則編譯下面代碼
#elif如果前面的#if給定條件不為真,當(dāng)前條件為真,則編譯下面代碼
#endif結(jié)束一個#if……#else條件編譯塊
#error停止編譯并顯示錯誤信息
1.4、C語言中的宏機(jī)制
c程序編譯分過程分為三個步驟:(1)預(yù)處理;(2)編譯;(3)鏈接。在預(yù)處理階段,編譯器中的預(yù)處理器會將定義的宏展開,即 原封不動的替換宏的定義,只是在處理文本。
二、typedef enum{};與enum{};
typedef 為C語言的關(guān)鍵字,釋義:為各種數(shù)據(jù)類型定義一個新名字(別名)。
2.1、枚舉類型的聲明
enum [枚舉名] {枚舉元素列表};
typedef enum [枚舉名] {枚舉元素列表};
typedef enum{FALSE=0,TURE=1}bool; // bool為此枚舉類型的變量,它的值只能是由FALSE與TURE賦予。
typedef enum{FALSE=0,TURE=!FALSE}bool;// FALSE與TURE不能是小寫,小寫是C語言的保留字。
三、結(jié)構(gòu)體與聯(lián)合體
結(jié)構(gòu)體和聯(lián)合體用于描述事物的屬性,如一只鳥的信息,可能包括它的品種,體重,顏色,年齡等。
用戶根據(jù)自己的需求構(gòu)造的數(shù)據(jù)類型,但必須“先定義,后使用”。
用戶必須先構(gòu)造一個結(jié)構(gòu)體類型,然后才能使用這個結(jié)構(gòu)體類型來定義變量或數(shù)組。
struct 結(jié)構(gòu)體名稱{}結(jié)構(gòu)體別名;
/*定義一個結(jié)構(gòu)體sbit,取別名Bit,表示8個位域結(jié)構(gòu)
unsigned bit0為位段名 1為位的個數(shù)*/
typedef struct sbit
{
unsigned bit0 : 1;
unsigned bit1 : 1;
unsigned bit2 : 1;
unsigned bit3 : 1;
unsigned bit4 : 1;
unsigned bit5 : 1;
unsigned bit6 : 1;
unsigned bit7 : 1;
}Bit;
四、C語言數(shù)據(jù)類型
unsigned無符號整型, 例如 int 型的范圍:-2^31 ~ 2^31 - 1,而unsigned int的范圍:0 ~ 2^32??雌饋韚nsigned 是個不錯的類型,尤其是用在自增或者沒有負(fù)數(shù)的情況。但是在實際使用中會出現(xiàn)一些意外的情況。
signed在默認(rèn)情況下聲明的整型變量都是有符號的類型(char有點特別),如果需聲明無符號類型的話就需要在類型前加上unsigned。無符號版本和有符號版本的區(qū)別就是無符號類型能保存2倍于有符號類型的正整數(shù)數(shù)據(jù)。
五、stm32中的數(shù)據(jù)類型
typedef unsigned short int uint16_t
參考:https://www.cnblogs.com/wangh0802PositiveANDupward/archive/2013/01/01/2841697.html
在STM32編程中,常用的數(shù)據(jù)類型有:char(字符型),u8,u16 ,u32,但是在一些計算中,涉及到負(fù)數(shù),小數(shù),因此要用到:int float doulbe 型。
其中u8——1個字節(jié),無符號型(不能表達(dá)負(fù)數(shù),如果用來當(dāng)作負(fù)數(shù)的話,就出錯了);
u16 ——2個字節(jié),無符號型(參看前邊STM32f10x.h中的定義);
u32——4個字節(jié),無符號型;
int——4個字節(jié),有符號型,可以表達(dá)負(fù)整數(shù);
float ——4個字節(jié),有符號型,可以表達(dá)負(fù)數(shù)/小數(shù);
double——8個字節(jié),有符號弄,可以表達(dá)負(fù)數(shù)/小數(shù);
六、stm32時鐘
HCLK:送給AHB總線、內(nèi)核、內(nèi)存和DMA使用的HCLK時鐘。
HSI:高速內(nèi)部時鐘
FLITFCLK:到Flash編程接口
LSE:低速外部時鐘
HSE:高速外部時鐘
FCLK:直接送給Cortex的自由運(yùn)行時鐘(free running clock)FCLK
、
GPIO_Mode_IN = 0x00 // GPIO Input Mode 輸入模式
GPIO_Mode_OUT = 0x01 // GPIO Out Mode 輸出模式
GPIO_Mode_AF = 0x02 // GPIO Alternate Function Mode 復(fù)用模式
GPIO_Mode_AN= 0x03 // GPIO Analog In/Out Mode 模擬輸入/輸出模式
進(jìn)制轉(zhuǎn)換表
上一篇:STM32帶位操作
下一篇:stm32庫函數(shù)記錄
推薦閱讀
史海拾趣
在電子行業(yè)中,Gamewell-FCI作為霍尼韋爾(Honeywell)旗下的重要品牌,其發(fā)展歷程充滿了諸多關(guān)鍵節(jié)點和里程碑事件。以下是五個與Gamewell-FCI(Honeywell)公司發(fā)展相關(guān)的故事,每個故事均基于事實描述:
1. Gamewell-FCI的起源與并入霍尼韋爾
Gamewell-FCI的起源可以追溯到其前身Gamewell Fire Alarm Telegraph Company,該公司成立于19世紀(jì)末,以生產(chǎn)創(chuàng)新的火災(zāi)報警系統(tǒng)而聞名。隨著技術(shù)的不斷進(jìn)步和市場需求的擴(kuò)大,Gamewell逐漸發(fā)展成為火災(zāi)安全領(lǐng)域的領(lǐng)導(dǎo)者。20世紀(jì)后期,Gamewell被FCI(Fire Control Instruments)收購,進(jìn)一步鞏固了其在消防報警技術(shù)領(lǐng)域的地位。隨后,隨著霍尼韋爾在工業(yè)自動化和安全領(lǐng)域的擴(kuò)展,Gamewell-FCI被并入霍尼韋爾大家庭,成為其安全與生產(chǎn)力解決方案集團(tuán)的一部分。這一合并不僅為Gamewell-FCI帶來了更廣闊的市場和資源,也使其能夠繼續(xù)推動消防安全技術(shù)的創(chuàng)新與發(fā)展。
2. 技術(shù)創(chuàng)新與產(chǎn)品線擴(kuò)展
在并入霍尼韋爾后,Gamewell-FCI憑借其深厚的技術(shù)底蘊(yùn)和創(chuàng)新能力,不斷推出新產(chǎn)品和技術(shù)解決方案。從傳統(tǒng)的火災(zāi)報警系統(tǒng)到先進(jìn)的智能火災(zāi)探測和預(yù)警系統(tǒng),Gamewell-FCI始終走在行業(yè)前列。公司還積極拓展產(chǎn)品線,涵蓋了氣體檢測、緊急通訊、安全疏散等多個領(lǐng)域,為客戶提供全方位的消防安全解決方案。這些技術(shù)創(chuàng)新和產(chǎn)品線擴(kuò)展不僅增強(qiáng)了Gamewell-FCI的市場競爭力,也為其在全球范圍內(nèi)的業(yè)務(wù)擴(kuò)展奠定了堅實基礎(chǔ)。
3. 全球化布局與戰(zhàn)略合作
隨著全球化進(jìn)程的加速,Gamewell-FCI也積極實施全球化戰(zhàn)略,通過在全球各地設(shè)立分支機(jī)構(gòu)、與當(dāng)?shù)仄髽I(yè)建立合作關(guān)系等方式,不斷擴(kuò)大其市場覆蓋面。同時,公司還注重與行業(yè)內(nèi)的領(lǐng)軍企業(yè)建立戰(zhàn)略合作關(guān)系,共同推動消防安全技術(shù)的創(chuàng)新與發(fā)展。這些合作不僅為Gamewell-FCI帶來了更多的商業(yè)機(jī)會,也促進(jìn)了全球消防安全領(lǐng)域的交流與合作。
4. 應(yīng)對市場挑戰(zhàn)與轉(zhuǎn)型
面對不斷變化的市場環(huán)境和客戶需求,Gamewell-FCI始終保持著敏銳的洞察力和靈活的反應(yīng)能力。當(dāng)傳統(tǒng)消防安全市場逐漸飽和時,公司及時調(diào)整戰(zhàn)略方向,將重心轉(zhuǎn)向智能消防、物聯(lián)網(wǎng)等新興領(lǐng)域。通過引入先進(jìn)的物聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)分析等手段,Gamewell-FCI成功實現(xiàn)了從傳統(tǒng)消防設(shè)備制造商向智能消防安全解決方案提供商的轉(zhuǎn)型。這一轉(zhuǎn)型不僅為公司帶來了新的增長點,也為其在全球消防安全領(lǐng)域的領(lǐng)先地位提供了有力支撐。
5. 可持續(xù)發(fā)展與社會責(zé)任
作為霍尼韋爾的一部分,Gamewell-FCI始終將可持續(xù)發(fā)展和社會責(zé)任視為企業(yè)發(fā)展的重要組成部分。公司致力于通過技術(shù)創(chuàng)新和高效運(yùn)營來降低產(chǎn)品對環(huán)境的影響,并積極推廣節(jié)能減排、綠色建筑的理念。同時,Gamewell-FCI還積極參與社會公益事業(yè),為災(zāi)區(qū)提供緊急救援、為教育機(jī)構(gòu)提供安全培訓(xùn)等,展現(xiàn)了其作為行業(yè)領(lǐng)導(dǎo)者的社會責(zé)任感。這些努力不僅提升了公司的品牌形象和社會聲譽(yù),也為公司的長遠(yuǎn)發(fā)展奠定了堅實基礎(chǔ)。
在成立初期,ELPIDA憑借其強(qiáng)大的技術(shù)實力和規(guī)模效應(yīng),迅速在全球DRAM市場中占據(jù)了重要地位。公司不斷推出創(chuàng)新產(chǎn)品,擴(kuò)大市場份額,成為行業(yè)內(nèi)的重要參與者。然而,隨著市場競爭的加劇和技術(shù)的快速變化,ELPIDA也面臨著巨大的挑戰(zhàn)。
冠西電子(COSMO)公司成立于1981年,起初便專注于光電元件產(chǎn)品的制造。公司創(chuàng)始人憑借對電子技術(shù)的深刻理解和市場需求的敏銳洞察,逐步將冠西電子打造成光電元件領(lǐng)域的專業(yè)制造商。通過不斷的技術(shù)創(chuàng)新和產(chǎn)品質(zhì)量提升,冠西電子逐漸在電子行業(yè)中嶄露頭角。
近年來,冠西電子積極布局全球市場,設(shè)立了多個分公司和辦事處,以便更好地服務(wù)全球客戶。同時,冠西電子還不斷關(guān)注新興技術(shù)和市場需求的變化,積極尋求新的發(fā)展機(jī)遇。展望未來,冠西電子將繼續(xù)秉承“專業(yè)、創(chuàng)新、品質(zhì)、服務(wù)”的理念,不斷推動公司業(yè)務(wù)的發(fā)展和進(jìn)步。
以上五個故事概要涵蓋了冠西電子(COSMO)公司從創(chuàng)立到發(fā)展的主要階段和事實。每個階段都體現(xiàn)了冠西電子在技術(shù)、市場、品質(zhì)、品牌等方面的努力和成就。
浙江東亞電子不僅在國內(nèi)市場上取得了顯著成績,還積極開拓國際市場。公司已為多家世界五百強(qiáng)企業(yè)、上市公司提供服務(wù),如華為、中興、通用電氣及西門子等。通過與這些國際知名企業(yè)的合作,公司不僅提升了自身品牌的影響力,還積累了豐富的國際市場經(jīng)驗。
Analog Microwave Design公司一直注重企業(yè)文化的建設(shè)和傳承。公司倡導(dǎo)創(chuàng)新、務(wù)實、合作的企業(yè)精神,鼓勵員工敢于挑戰(zhàn)、勇于創(chuàng)新。同時,公司還注重員工的培訓(xùn)和發(fā)展,為員工提供了良好的職業(yè)晉升通道和學(xué)習(xí)機(jī)會。這種積極向上的企業(yè)文化不僅激發(fā)了員工的工作熱情和創(chuàng)新精神,還為公司的長期發(fā)展提供了有力保障。
以上五個故事分別從初創(chuàng)時期的挑戰(zhàn)與機(jī)遇、技術(shù)創(chuàng)新的突破、國際化戰(zhàn)略的實施、產(chǎn)品線的豐富與完善以及企業(yè)文化的建設(shè)與傳承等方面,展現(xiàn)了Analog Microwave Design公司在電子行業(yè)發(fā)展的歷程和成就。這些故事不僅反映了公司的成長軌跡,也體現(xiàn)了公司在面對市場變化和技術(shù)挑戰(zhàn)時所采取的積極態(tài)度和應(yīng)對策略。
前言﹕本通訊第23期曾介紹EIA規(guī)范有關(guān)低階接觸阻抗測試(TP-23A)﹐主要適用于傳輸訊號用的連接器。本期所介紹接觸電阻測試則適用于傳輸電力之連接器﹐所 通之電流高出甚多﹐為主要相異之處。 1.0TP-06A接觸電阻 2.0目的 ...… 查看全部問答∨ |
競賽必備——雙路模數(shù)轉(zhuǎn)換同步顯示電路 本帖最后由 paulhyde 于 2014-9-15 08:58 編輯 競賽必備——雙路模數(shù)轉(zhuǎn)換同步顯示電路 大家有用就下載吧! … 查看全部問答∨ |
寫好代碼后,綜合與分析都通過了,o errors, 0 warning。 然后 full compilation, 出現(xiàn)了兩個critical warning: 1) 找不到.sdc文件。 這個文件要怎么創(chuàng)建啊? 是不是在full comilation之前還需要做某些步驟? 2) 我的系統(tǒng)中例化了一個PLL, 命 ...… 查看全部問答∨ |
下面的不是故事:與老婆(就讓我這樣稱呼吧,心里還這對她的)網(wǎng)絡(luò)戀愛結(jié)婚,我是封建男,因為兒子跟老婆姓了(兒子出生時候怕岳母不帶兒子忍了下,老婆又催,我是外地人),獨女的她家比較有錢。我無法接受這樣的事實,2年后白身出來了,離婚拋棄 ...… 查看全部問答∨ |
從setupapi.log中可以看到第一次安裝ndis驅(qū)動時有如下錯誤提示:#E154 類別安裝程式失敗。 錯誤 31: 連到系統(tǒng)上的設(shè)備沒有發(fā)揮作用。什么原因會引起該錯誤?。? 謝謝!… 查看全部問答∨ |
連續(xù)賦值語句的綜合:從賦值語句右邊提取出邏輯,用于驅(qū)動賦值語句左邊的net 過程賦值語句的綜合:從賦值語句右邊提取出的邏輯,用于驅(qū)動賦值語句左邊的reg型變量。注意:initia語句僅用于仿真,不綜合。只有在always中才能被綜合。 建議組合邏輯用 ...… 查看全部問答∨ |
求助一段149的測量(××cc-××ss)/2的一段程序 12位時FFF是否對應(yīng)著參考電壓值? 我用mem0測得值還是比較準(zhǔn)的 用mem2 根本沒有反應(yīng) 請高手指點迷津 程序如下 void adc_ini() { ADC12CTL0 &=~ENC; ADC12CTL0=REFON+REF2_5V+SHT0_ ...… 查看全部問答∨ |
|
ADI比賽平臺老師拿了,卻一直不讓我們弄,怕弄壞,叫我們一直仿真,這個合理不? 本帖最后由 paulhyde 于 2014-9-15 03:41 編輯 如題,我們能夠進(jìn)軍ADI,說明ADI比賽組委會對我們項目的認(rèn)可,但現(xiàn)在平臺老師拿到了,可我們連塊ADI的芯片都沒有,老師一直叫我們回去仿真,這個合理不,現(xiàn)在都第幾個月了,ADI的平臺難道真的 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 電動車電池成本降一半,續(xù)航卻減一半?寧德時代新電池能突圍嗎?
- 從“不可修”到可拆可換:CTP電池的售后怎么辦?
- 區(qū)域控制器ZCU國產(chǎn)化:從物料齊全到系統(tǒng)話語權(quán)
- 總額超260億-盤點全球移動機(jī)器人領(lǐng)域融資TOP10企業(yè)
- 安森美CEO談?wù)撾妱悠嚺cAI服務(wù)器前景
- LILYGO T-LoRa Pager:復(fù)古造型與前沿技術(shù)結(jié)合的物聯(lián)網(wǎng)手持設(shè)備
- VS Code+PlatformIO搭建ESP32 Arduino開發(fā)環(huán)境
- Esp32環(huán)境離線搭建參考
- ESP32使用舵機(jī)庫時的錯誤
- ESP32 S3接ST7789屏幕線序
- 有獎直播報名|ST 家用電器三相電機(jī)控制解決方案
- 英特爾FPGA可編程加速平臺介紹,走近AI、數(shù)據(jù)中心、基因工程等大咖工程
- 有獎直播|PI助力高可靠性與高效率的工業(yè)計量方案
- 【直播】恩智浦Thread/BLE雙模技術(shù)講座
- 有獎直播已結(jié)束【如何利用 TI MSPM0 汽車微控制器提高檢測和控制性能】
- 揭秘正確選擇探頭的5大要素 (泰克原裝探頭促銷,高貴不貴,199元起)
- 看展闖關(guān)贏好禮|MPS 芯云展廳與您不見不散!
- 曬豐收:“刪繁就簡”+“這是個坑”主題分享
- 中國版BeagleBone Black超低價團(tuán)購!11月18日火爆開團(tuán)