原创 TI藍牙BLE 協議棧代碼學習——OSAL(下)

接下來我們再看main()函數中另一個跟OSAL相關的函數——osal_start_system(),也位於OSAL.c中。 void osal_start_system( void ) { #if !defined ( ZBIT ) &

原创 C語言運算符優先級--詳細列表

優先級 運算符 名稱或含義 使用形式 結合方向 說明 1 [] 數組下標 數組名[常量表達式] 左到右   () 圓括號 (表達式)/函數名(形參表)   . 成員選

原创 I2C總線之(3)----以C語言理解IIC

爲了加深對I2C總線的理解,用C語言模擬IIC總線,邊看源代碼邊讀波形: 如下圖所示的寫操作的時序圖:   讀時序的理解同理。對於時序不理解的朋友請參考“I2C總線之(二)---時序” 完整的程序如下:   #in

原创 SPI及其時鐘配置

今天知道了 SPI 時鐘的設置 ,原來SPI 主設備 時鐘極性的配置 應該和 從設備SDI的極性 相反。 怪不得以前做SPI 主設備程序的時候 ,把

原创 診斷數據與應用層數據不一致時的映射方法(Remapping)

診斷數據與應用層數據不一致時的映射方法(Remapping) 1,簡介:該名稱及以下實現僅是一個例子,主要目的是學習該映射方法; 2,重映射(remapping)的機制: 將一個enum排序的聲明以一定的順序排列後,將其通過一個相應長度的

原创 寫好C語言,漂亮的宏定義很重要,使用宏定義可以防止出錯,提高可移植性,可讀性,方便性

1,防止一個頭文件被重複包含 #ifndef COMDEF_H #define COMDEF_H   //頭文件內容 #endif 2,重新定義一些類型,防止由於各種平臺和編譯器的不同,而產生的類型字節數差異,方便移植。 t

原创 sizeof(struct )大小討論

struct 結構大小和順序、#progma pack參數有關係 針對字節對齊,環境使用的gcc version 3.2.2編譯器(32位x86平臺)爲例。 char 長度爲1個字節,short 長度爲2個字節,int 長度爲

原创 asm內聯彙編及HC08啓動代碼說明

AVR GCC has sei() for __enable_interrupts(), and cli() for __disable_interrupts(). Both of these macros are located in

原创 Sizeof與Strlen的區別與聯繫

Sizeof與Strlen的區別與聯繫 一、sizeof     sizeof(...)是運算符,在頭文件中typedef爲unsigned int,其值在編譯時即計算好了,參數可以是數組、指針、類型、對象、函數等。     它的功能是

原创 CAN總線網絡的傳輸模式

CAN總線網絡的傳輸模式根據觸發條件的不同,在車身CAN網絡中可分爲事件型、週期性及混合型三種傳輸模式; 1、事件型傳輸模式:       隨着類型或數據的轉變及時發送的消息。此類型消息的好處是極少佔用總線資源,但是可能會存在漏發情況,這

原创 I2C總線之(2)----時序

一、協議 1.空閒狀態  I2C總線總線的SDA和SCL兩條信號線同時處於高電平時,規定爲總線的空閒狀態。此時各個器件的輸出級場效應管均處在截止狀態,即釋放總線,由兩條信號線各自的上拉電阻把電平拉高。 2.起始位與停止位

原创 C/C++常見面試題

1. C中static有什麼作用 (1)隱藏。 當我們同時編譯多個文件時,所有未加static前綴的全局變量和函數都具有全局可見性,故使用static在不同的文件中定義同名函數和同名變量,而不必擔心命名衝突。 (2)static的第二個作

原创 字符串處理函數gets()、puts()、strcmp()、strlen()、strcpy()、strcat()-C語言

字符串處理函數gets()、puts()、strcmp()、strlen()、strcpy()、strcat()-C語言   字符串標準函數的原型在頭文件string.h中。 1.輸入字符串──gets()函數 (1)調用方式:gets

原创 如何判斷CPU是大端還是小端模式

在ARM體系中,每個字單元包含4個字節單元或者兩個半字單元。在字單元中,4個字節哪一個是高位字節,哪一個是低位字節則有兩種不同的格式:big-endian(MOTO)和little-endian(INTEL)格式。在小端模式中,低位字節

原创 單片機位數

單片機位數 指CPU處理的數據的寬度,參與運算的寄存器的數據長度?   如果總線寬度與CPU一次處理的數據寬度相同,則這個寬度就是所說的單片機位數。 如果總線寬度與CPU一次處理的數據寬度不同: 1)總線寬度小於CPU一次處理的數據寬度,