C只有Call by value
Object: 有占空間的就教物件,所以物件會有明確大小 (eq. int a)
*(int32_t *)(0x11aa) = 0x01; //location value:*(int32_t *)(0x11aa) , assignment: =
2020年4月6日 星期一
2020年4月5日 星期日
[C] #ifdef #ifndef #elif #else #endif #if defined
1.#ifdef
a.只有一個條件
a.只有一個條件
#ifdef 識別字 /*若識別字被定義,編譯器會編譯此部分程式*/ #else /*否則編譯此部分程式*/ #endif
或
#if defined(CONDITION_1) /*若識別字被定義,編譯器會編譯此部分程式*/ #elif /*否則編譯此部分程式*/ #endif
/*Example*/ #define CONDITION_1 #ifdef CONDITION_1 /*編譯此部分程式*/ #else /*不編譯此部分程式*/ #endif
2020年3月22日 星期日
[BT/BLE] Beacon/Advertising 藍芽廣播介紹
BLE(Bluetooth Low Energy)的廣播模式,也稱Advertising,少許人稱broadcast.
Google稱為Eddystone, Apple稱為Beacon.
雖然名字不同,但他們都是類似的東西,都是按照BLE的Advertising 格式所構成的.
需要文件載點:
Core Specification and Core Specification Supplement
Eddystone Protocol Specification
iBeacon
Google稱為Eddystone, Apple稱為Beacon.
雖然名字不同,但他們都是類似的東西,都是按照BLE的Advertising 格式所構成的.
需要文件載點:
Core Specification and Core Specification Supplement
Eddystone Protocol Specification
iBeacon
2020年3月18日 星期三
[C] 指標
&:取址(reference operator), address of ... (eq.&a:address of a)
*:取值(dereference operator),value of ... (eq.*b:value of b)
各種用法解說:
char *ptr; //char表示point指向變數的類型,唸做:ptr is a pointer to char
char p[5]; // p is a 5-element array of char
typedef void (*func)(char);
func是個指標,指向某個函式,而這個涵式有一個資料型態為char的引述,回傳值為void
*:取值(dereference operator),value of ... (eq.*b:value of b)
各種用法解說:
char *ptr; //char表示point指向變數的類型,唸做:ptr is a pointer to char
char p[5]; // p is a 5-element array of char
char *p[5]; // p is a 5-element array of pointer to char
char (*p)[5]; // p is a pointer to a 5-element array of char
另一種解釋
int *ptr[10];
This is an array of 10 int* pointers
int (*ptr)[10];
This is a pointer to an array of 10 int
typedef void (*func)(char);
func是個指標,指向某個函式,而這個涵式有一個資料型態為char的引述,回傳值為void
2020年3月17日 星期二
[C] 教學網站
C語言教學飲片(新手)
C語言教學(難度高)
你所不知道的 C 語言指標
https://boredzo.org/pointers/
http://www.literateprogramming.com/ctraps.pdf
線上編譯器(單步執行和圖解)
2020年3月16日 星期一
[C] 讀寫存取.txt.bin
fopen
不採用二進制方式打開,fopen(filename, "r"),只要文件中有一字節為1A,就會停止讀取.如果用fopen(filename,"rb")就不會出現此問題.
rb是只讀取二進位文件:
r:read, b:binary
rb是只讀取二進位文件:
r:read, b:binary
fseek
很重要,有時候讀不到長度會資料是這部分設定錯誤,意思是游標的位置.
2020年3月3日 星期二
[STM32] STM32CUBE教學
ST出了兩套非常方便實用且免費的工具
●STM32Cube_MX
https://www.st.com/en/development-tools/stm32cubemx.html
可用選單方式建立STM32的周邊硬體程式.
如下圖假設您今天要UART功能,只要在STM32Cube_MX 的圖形介面中點一點按一按就能產生此功能的程式了.
●STM32CubeIDE
https://www.st.com/en/development-tools/stm32cubeide.html
結合STM32Cube_MX和Atollic編譯器所構成的,其是使用GCC compiler,所以效率比Keil C和IAR差,但是免費,可以提供給不想花錢買Keil C或IAR的人使用.
●STM32Cube_MX
https://www.st.com/en/development-tools/stm32cubemx.html
可用選單方式建立STM32的周邊硬體程式.
如下圖假設您今天要UART功能,只要在STM32Cube_MX 的圖形介面中點一點按一按就能產生此功能的程式了.
●STM32CubeIDE
https://www.st.com/en/development-tools/stm32cubeide.html
結合STM32Cube_MX和Atollic編譯器所構成的,其是使用GCC compiler,所以效率比Keil C和IAR差,但是免費,可以提供給不想花錢買Keil C或IAR的人使用.
訂閱:
文章 (Atom)
