資料介紹
// 開關(guān)
#define ?SW_ON ? ? ? ? ? ? ??1
#define ?SW_OFF ? ? ? ? ? ? ?2
#define ?SW_INVERT ? ? ? ? ??3
?
// 右移位替代除法
#define ?SHIFT_DIVISOR_2 ? ??1 ? ? // 右移1位 (除以2)
#define ?SHIFT_DIVISOR_4 ? ??2 ? ? // 右移2位 (除以4)
#define ?SHIFT_DIVISOR_8 ? ??3 ? ? // 右移3位 (除以8)
#define ?SHIFT_DIVISOR_16 ? ?4 ? ? // 右移4位 (除以16)
#define ?SHIFT_DIVISOR_32 ? ?5 ? ? // 右移5位 (除以32)
#define ?SHIFT_DIVISOR_64 ? ?6 ? ? // 右移6位 (除以64)
#define ?SHIFT_DIVISOR_128 ??7 ? ? // 右移7位 (除以128)
#define ?SHIFT_DIVISOR_256 ??8 ? ? // 右移8位 (除以256)
?
// ------------------------------------------------------
#ifndef ?__I
#ifdef ? __cplusplus
#define ?__I ? ? ? ? ? ? ? ?volatile ? ? ? ? ? ? // 只讀
#else
// 程序空間在數(shù)據(jù)空間中可見(可使用const變量)
#define ?__I ? ? ? ? ? ? ? ?volatile const ? ? ? // 只讀
#endif
#endif
#ifndef ?__O
#define ?__O ? ? ? ? ? ? ? ?volatile ? ? ? ? ? ? // 只寫
#endif
#ifndef ?__IO
#define ?__IO ? ? ? ? ? ? ? volatile ? ? ? ? ? ? // 讀寫
#endif
?
typedef unsigned char ? ? ? ? ??uint8_t, ?INT8U, ?BYTE;
typedef ??signed char ? ? ? ? ??int8_t, ??INT8S;
typedef unsigned int ? ? ? ? ? ?uint16_t, INT16U, HWORD;
typedef ??signed int ? ? ? ? ? ?int16_t, ?INT16S;
typedef unsigned long int ? ? ??uint32_t, INT32U, WORD;
typedef ??signed long int ? ? ??int32_t, ?INT32S;
typedef unsigned long long int ?uint64_t, INT64U, DWORD;
typedef ??signed long long int ?int64_t, ?INT64S;
?
#define ? UINT8_MAX ? ? ?(uint8_t)( 255)
#define ? ?INT8_MIN ? ? ?(int8_t)( -128)
#define ? ?INT8_MAX ? ? ?(int8_t)( ?127)
#define ?UINT14_MAX ? ? ?(uint16_t)(16383)
#define ? INT14_MAX ? ? ?(int16_t)( 16383)
#define ?UINT16_MAX ? ? ?(uint16_t)(65535)
#define ? INT16_MIN ? ? ?(int16_t)(-32768)
#define ? INT16_MAX ? ? ?(int16_t)( 32767)
#define ?UINT32_MAX ? ? ?(uint32_t)(4294967295)
#define ? INT32_MIN ? ? ?(int32_t)(-2147483648)
#define ? INT32_MAX ? ? ?(int32_t)( 2147483647)
#define ?UINT64_MAX ? ? ?(uint64_t)(18446744073709551615)
#define ? INT64_MIN ? ? ?(int64_t)(-9223372036854775808)
#define ? INT64_MAX ? ? ?(int64_t)( 9223372036854775807)
?
// ------------------------------------------------
// 字節(jié)操作類型
typedef union
{
? ??__IO char ? ?ch; ? ? ? ? // 字符
? ??__IO int8_t ?iByte; ? ? ?// 有符號(hào)數(shù)
? ??__IO uint8_t byte; ? ? ? // 字節(jié)
? ??struct
? ? {
? ? ? ??__IO uint8_t d0:4;
? ? ? ??__IO uint8_t d1:4;
? ? } hByte; ? ? ? ? ? ?// 半字節(jié)
? ??struct
? ? {
? ? ? ??__IO uint8_t d0:1;
? ? ? ??__IO uint8_t d1:1;
? ? ? ??__IO uint8_t d2:1;
? ? ? ??__IO uint8_t d3:1;
? ? ? ??__IO uint8_t d4:1;
? ? ? ??__IO uint8_t d5:1;
? ? ? ??__IO uint8_t d6:1;
? ? ? ??__IO uint8_t d7:1;
? ? } bittel; ? ? ? ? ? // 二進(jìn)制位
} Byte_t, *Byte_pt;
?
// 半字操作類型(存儲(chǔ)模式:小端模式,低字節(jié)在低地址)
typedef union
{
? ??__IO int16_t ?iHWord; ? ?// 有符號(hào)數(shù)
? ??__IO uint16_t hWord; ? ? // 半字
? ??struct
? ? {
? ? ? ??__IO uint8_t d0;
? ? ? ??__IO uint8_t d1;
? ? } byte; ? ? ? ? ? ? // 字節(jié)
? ??struct
? ? {
? ? ? ??__IO uint8_t d0:4;
? ? ? ??__IO uint8_t d1:4;
? ? ? ??__IO uint8_t d2:4;
? ? ? ??__IO uint8_t d3:4;
? ? } hByte; ? ? ? ? ? ?// 半字節(jié)
? ??struct
? ? {
? ? ? ??__IO uint8_t d0:1;
? ? ? ??__IO uint8_t d1:1;
? ? ? ??__IO uint8_t d2:1;
? ? ? ??__IO uint8_t d3:1;
? ? ? ??__IO uint8_t d4:1;
? ? ? ??__IO uint8_t d5:1;
? ? ? ??__IO uint8_t d6:1;
? ? ? ??__IO uint8_t d7:1;
? ? ? ??__IO uint8_t d8:1;
? ? ? ??__IO uint8_t d9:1;
? ? ? ??__IO uint8_t d10:1;
? ? ? ??__IO uint8_t d11:1;
? ? ? ??__IO uint8_t d12:1;
? ? ? ??__IO uint8_t d13:1;
? ? ? ??__IO uint8_t d14:1;
? ? ? ??__IO uint8_t d15:1;
? ? } bittel; ? ? ? ? ? // 二進(jìn)制位
} HWord_t, *HWord_pt;
?
// 字操作類型(存儲(chǔ)模式:小端模式)
typedef union
{
? ??__IO float ? ?fVal; ? ? ?// 單精度浮點(diǎn)數(shù)
? ??__IO int32_t ?iWord; ? ? // 有符號(hào)數(shù)
? ??__IO uint32_t word; ? ? ?// 字
? ??struct
? ? {
? ? ? ??__IO uint16_t d0;
? ? ? ??__IO uint16_t d1;
? ? } hWord; ? ? ? ? ? ?// 半字
? ??struct
? ? {
? ? ? ??__IO uint8_t d0;
? ? ? ??__IO uint8_t d1;
? ? ? ??__IO uint8_t d2;
? ? ? ??__IO uint8_t d3;
? ? } byte; ? ? ? ? ? ? // 字節(jié)
? ??struct
? ? {
? ? ? ??__IO uint8_t d0:4;
? ? ? ??__IO uint8_t d1:4;
? ? ? ??__IO uint8_t d2:4;
? ? ? ??__IO uint8_t d3:4;
? ? ? ??__IO uint8_t d4:4;
? ? ? ??__IO uint8_t d5:4;
? ? ? ??__IO uint8_t d6:4;
? ? ? ??__IO uint8_t d7:4;
? ? } hByte; ? ? ? ? ? ?// 半字節(jié)
? ??struct
? ? {
? ? ? ??__IO uint8_t d0:1;
? ? ? ??__IO uint8_t d1:1;
? ? ? ??__IO uint8_t d2:1;
? ? ? ??__IO uint8_t d3:1;
? ? ? ??__IO uint8_t d4:1;
? ? ? ??__IO uint8_t d5:1;
? ? ? ??__IO uint8_t d6:1;
? ? ? ??__IO uint8_t d7:1;
? ? ? ??__IO uint8_t d8:1;
? ? ? ??__IO uint8_t d9:1;
? ? ? ??__IO uint8_t d10:1;
? ? ? ??__IO uint8_t d11:1;
? ? ? ??__IO uint8_t d12:1;
? ? ? ??__IO uint8_t d13:1;
? ? ? ??__IO uint8_t d14:1;
? ? ? ??__IO uint8_t d15:1;
? ? ? ??__IO uint8_t d16:1;
? ? ? ??__IO uint8_t d17:1;
? ? ? ??__IO uint8_t d18:1;
? ? ? ??__IO uint8_t d19:1;
? ? ? ??__IO uint8_t d20:1;
? ? ? ??__IO uint8_t d21:1;
? ? ? ??__IO uint8_t d22:1;
? ? ? ??__IO uint8_t d23:1;
? ? ? ??__IO uint8_t d24:1;
? ? ? ??__IO uint8_t d25:1;
? ? ? ??__IO uint8_t d26:1;
? ? ? ??__IO uint8_t d27:1;
? ? ? ??__IO uint8_t d28:1;
? ? ? ??__IO uint8_t d29:1;
? ? ? ??__IO uint8_t d30:1;
? ? ? ??__IO uint8_t d31:1;
? ? } bittel; ? ? ? ? ? // 二進(jìn)制位
} Word_t, *Word_pt;
?
// 雙字操作類型(存儲(chǔ)模式:小端模式)
typedef union
{
? ??__IO double ??dFVal; ? ? // 雙精度浮點(diǎn)數(shù)
? ??__IO int64_t ?iDWord; ? ?// 有符號(hào)數(shù)
? ??__IO uint64_t dWord; ? ? // 雙字
? ??struct
? ? {
? ? ? ??__IO uint32_t d0;
? ? ? ??__IO uint32_t d1;
? ? } word; ? ? ? ? ? ? // 字
? ??struct
? ? {
? ? ? ??__IO uint16_t d0;
? ? ? ??__IO uint16_t d1;
? ? ? ??__IO uint16_t d2;
? ? ? ??__IO uint16_t d3;
? ? } hWord; ? ? ? ? ? ?// 半字
? ??struct
? ? {
? ? ? ??__IO uint8_t d0;
? ? ? ??__IO uint8_t d1;
? ? ? ??__IO uint8_t d2;
? ? ? ??__IO uint8_t d3;
? ? ? ??__IO uint8_t d4;
? ? ? ??__IO uint8_t d5;
? ? ? ??__IO uint8_t d6;
? ? ? ??__IO uint8_t d7;
? ? } byte; ? ? ? ? ? ? // 字節(jié)
? ??struct
? ? {
? ? ? ??__IO uint8_t d0:4;
? ? ? ??__IO uint8_t d1:4;
? ? ? ??__IO uint8_t d2:4;
? ? ? ??__IO uint8_t d3:4;
? ? ? ??__IO uint8_t d4:4;
? ? ? ??__IO uint8_t d5:4;
? ? ? ??__IO uint8_t d6:4;
? ? ? ??__IO uint8_t d7:4;
? ? ? ??__IO uint8_t d8:4;
? ? ? ??__IO uint8_t d9:4;
? ? ? ??__IO uint8_t d10:4;
? ? ? ??__IO uint8_t d11:4;
? ? ? ??__IO uint8_t d12:4;
? ? ? ??__IO uint8_t d13:4;
? ? ? ??__IO uint8_t d14:4;
? ? ? ??__IO uint8_t d15:4;
? ? } hByte; ? ? ? ? ? ?// 半字節(jié)
? ??struct
? ? {
? ? ? ??__IO uint8_t d0:1;
? ? ? ??__IO uint8_t d1:1;
? ? ? ??__IO uint8_t d2:1;
? ? ? ??__IO uint8_t d3:1;
? ? ? ??__IO uint8_t d4:1;
? ? ? ??__IO uint8_t d5:1;
? ? ? ??__IO uint8_t d6:1;
? ? ? ??__IO uint8_t d7:1;
? ? ? ??__IO uint8_t d8:1;
? ? ? ??__IO uint8_t d9:1;
? ? ? ??__IO uint8_t d10:1;
? ? ? ??__IO uint8_t d11:1;
? ? ? ??__IO uint8_t d12:1;
? ? ? ??__IO uint8_t d13:1;
? ? ? ??__IO uint8_t d14:1;
? ? ? ??__IO uint8_t d15:1;
? ? ? ??__IO uint8_t d16:1;
? ? ? ??__IO uint8_t d17:1;
? ? ? ??__IO uint8_t d18:1;
? ? ? ??__IO uint8_t d19:1;
? ? ? ??__IO uint8_t d20:1;
? ? ? ??__IO uint8_t d21:1;
? ? ? ??__IO uint8_t d22:1;
? ? ? ??__IO uint8_t d23:1;
? ? ? ??__IO uint8_t d24:1;
? ? ? ??__IO uint8_t d25:1;
? ? ? ??__IO uint8_t d26:1;
? ? ? ??__IO uint8_t d27:1;
? ? ? ??__IO uint8_t d28:1;
? ? ? ??__IO uint8_t d29:1;
? ? ? ??__IO uint8_t d30:1;
? ? ? ??__IO uint8_t d31:1;
? ? ? ??__IO uint8_t d32:1;
? ? ? ??__IO uint8_t d33:1;
? ? ? ??__IO uint8_t d34:1;
? ? ? ??__IO uint8_t d35:1;
? ? ? ??__IO uint8_t d36:1;
? ? ? ??__IO uint8_t d37:1;
? ? ? ??__IO uint8_t d38:1;
? ? ? ??__IO uint8_t d39:1;
? ? ? ??__IO uint8_t d40:1;
? ? ? ??__IO uint8_t d41:1;
? ? ? ??__IO uint8_t d42:1;
? ? ? ??__IO uint8_t d43:1;
? ? ? ??__IO uint8_t d44:1;
? ? ? ??__IO uint8_t d45:1;
? ? ? ??__IO uint8_t d46:1;
? ? ? ??__IO uint8_t d47:1;
? ? ? ??__IO uint8_t d48:1;
? ? ? ??__IO uint8_t d49:1;
? ? ? ??__IO uint8_t d50:1;
? ? ? ??__IO uint8_t d51:1;
? ? ? ??__IO uint8_t d52:1;
? ? ? ??__IO uint8_t d53:1;
? ? ? ??__IO uint8_t d54:1;
? ? ? ??__IO uint8_t d55:1;
? ? ? ??__IO uint8_t d56:1;
? ? ? ??__IO uint8_t d57:1;
? ? ? ??__IO uint8_t d58:1;
? ? ? ??__IO uint8_t d59:1;
? ? ? ??__IO uint8_t d60:1;
? ? ? ??__IO uint8_t d61:1;
? ? ? ??__IO uint8_t d62:1;
? ? ? ??__IO uint8_t d63:1;
? ? } bittel; ? ? ? ? ? // 二進(jìn)制位
} DWord_t, *DWord_pt;
?
// ------------------------------------------------------
// 時(shí)間計(jì)算
typedef struct CalTime
{
? ??__IO uint16_t bDelay:1; ?// 延時(shí)標(biāo)識(shí)
? ??__IO uint16_t bExe:1; ? ?// 執(zhí)行標(biāo)識(shí)
? ??__IO uint16_t bCon:1; ? ?// 控制標(biāo)識(shí)
? ??__IO uint16_t con:13; ? ?// 控制值 [0,8191]
? ??__IO uint16_t val; ? ? ? // 計(jì)數(shù)值
} CalTime_t, *CalTime_pt;
?
// ------------------------------------------------------
// ===單二進(jìn)制位操作宏===
// 2字節(jié)長(zhǎng)度
#define SetBit2B(Byte, Bit) ? ?( (Byte) |= ?(((uint16_t)1)<<(Bit)) )
#define ClrBit2B(Byte, Bit) ? ?( (Byte) &= ~(((uint16_t)1)<<(Bit)) )
#define ComBit2B(Byte, Bit) ? ?( (Byte) ^= ?(((uint16_t)1)<<(Bit)) )
#define GetBit2B(Byte, Bit) ? ?(((Byte) & ? (((uint16_t)1)<<(Bit))) ? 1 : 0)
// 4字節(jié)長(zhǎng)度
#define SetBit4B(Byte, Bit) ? ?( (Byte) |= ?(((uint32_t)1)<<(Bit)) )
#define ClrBit4B(Byte, Bit) ? ?( (Byte) &= ~(((uint32_t)1)<<(Bit)) )
#define ComBit4B(Byte, Bit) ? ?( (Byte) ^= ?(((uint32_t)1)<<(Bit)) )
#define GetBit4B(Byte, Bit) ? ?(((Byte) & ? (((uint32_t)1)<<(Bit))) ? 1 : 0)
// 8字節(jié)長(zhǎng)度
#define SetBit8B(Byte, Bit) ? ?( (Byte) |= ?(((uint64_t)1)<<(Bit)) )
#define ClrBit8B(Byte, Bit) ? ?( (Byte) &= ~(((uint64_t)1)<<(Bit)) )
#define ComBit8B(Byte, Bit) ? ?( (Byte) ^= ?(((uint64_t)1)<<(Bit)) )
#define GetBit8B(Byte, Bit) ? ?(((Byte) & ? (((uint64_t)1)<<(Bit))) ? 1 : 0)
?
// ===多二進(jìn)制位操作宏===
#define SetBits(Byte, Bits) ? ?( (Byte) |= ?(Bits) )
#define ClrBits(Byte, Bits) ? ?( (Byte) &= ~(Bits) )
#define ComBits(Byte, Bits) ? ?( (Byte) ^= ?(Bits) )
#define GetBits(Byte, Bits) ? ?( (Byte) & ? (Bits) )
- MCU_頭文件編寫
- 單片機(jī)-頭文件
- 使用KEIL開發(fā)51單片機(jī)時(shí)出現(xiàn)頭文件報(bào)重復(fù)定義的錯(cuò)誤應(yīng)該如何解決
- 51單片機(jī)編程的頭文件reg51.h詳解
- 單片機(jī)C語言編程的頭文件reg51.h和reg52.h的詳細(xì)資料解析
- 51單片機(jī)的頭文件reg51h詳細(xì)資料講解
- 單片機(jī)的C51頭文件到底是什么意思
- Linux中有哪些常見的文件類型? 0次下載
- 教大家一個(gè)如何在頭文件中定義全局變量的方法 19次下載
- 如何在C++代碼中使用C頭文件 3次下載
- C#教程之獲取文件類型 4次下載
- DSP之標(biāo)準(zhǔn)頭文件 12次下載
- 硬件類型定義 7次下載
- 基于TMS320F28027的頭文件源文件 54次下載
- WIN7添加攝像頭文件 4次下載
- 可重復(fù)頭文件的固定結(jié)構(gòu) 1k次閱讀
- 請(qǐng)問頭文件能不能定義變量呢? 2.1k次閱讀
- C語言必備知識(shí)頭文件包含 3.1k次閱讀
- 淺談PLC定義數(shù)據(jù)類型的應(yīng)用 2.1k次閱讀
- C 語言的頭文件路徑位置問題 7.5k次閱讀
- 定義數(shù)據(jù)類型 1.8k次閱讀
- 怎么批量移動(dòng)特定文件到指定文件夾 4.8k次閱讀
- 模版定義一定要寫在頭文件中嗎? 2.4k次閱讀
- C語言頭文件路徑的剖析 3.1k次閱讀
- 用戶自定義類型 1.8k次閱讀
- Linux的文件類型介紹 1.6k次閱讀
- C語言的頭文件組織與包含原則 4.1k次閱讀
- C語言中程序員編寫的頭文件和編譯器自帶的頭文件 8.5k次閱讀
- 學(xué)習(xí)嵌入式linux系統(tǒng)開發(fā),文件類型一定要分清 1.3k次閱讀
- Allegro中的文件類型后綴匯總 7.7k次閱讀
下載排行
本周
- 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊(cè)
- 1.21 MB | 1次下載 | 免費(fèi)
- 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊(cè)
- 0.87 MB | 次下載 | 免費(fèi)
- 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
- 88.16 KB | 次下載 | 免費(fèi)
- 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 910.67 KB | 次下載 | 免費(fèi)
- 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 989.14 KB | 次下載 | 免費(fèi)
- 7WD6208A產(chǎn)品規(guī)格書
- 631.24 KB | 次下載 | 免費(fèi)
- 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊(cè)
- 1.64 MB | 次下載 | 2 積分
本月
- 1EMC PCB設(shè)計(jì)總結(jié)
- 0.33 MB | 12次下載 | 免費(fèi)
- 2PD取電芯片 ECP5702規(guī)格書
- 0.88 MB | 5次下載 | 免費(fèi)
- 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
- 0.10 MB | 3次下載 | 免費(fèi)
- 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊(cè)
- 0.88 MB | 3次下載 | 免費(fèi)
- 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
- 1.01 MB | 3次下載 | 免費(fèi)
- 7怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
- 0.65 MB | 2次下載 | 免費(fèi)
- 8SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
- 0.94 MB | 2次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191469次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論