原创 about u2_printf

void u2_printf(char* fmt,...)   {       va_list ap;     va_start(ap,fmt);     vsprintf((char*)USART2_TX_BUF,fmt,ap);  

原创 嵌入式C語言之---模塊化編程

當你在一個項目小組做一個相對較複雜的工程時,意味着你不再獨自單幹。你需要和你的小組成員分工合作,一起完成項目,這就要求小組成員各自負責一部分工程。比如你可能只是負責通訊或者顯示這一塊。這個時候,你就應該將自己的這一塊程序寫成一個模塊,單獨

原创 Define,const,static用法總結

1、Define用法:define主要是用於宏常量定義的,使程序看起來更簡潔明瞭,方便代碼維護,#define定義的實質只是一個常數的名字,沒有具體數據類型的,沒有分配內存空間。在編譯是會被編譯器替換爲該常數。每次使用該宏定義,就要進行

原创 關於__attribute__((packed))

1. __attribute__ ((packed)) 的作用就是告訴編譯器取消結構在編譯過程中的優化對齊,按照實際佔用字節數進行對齊,是GCC特有的語法。這個功能是跟操作系統沒關係,跟編譯器有關,gcc編譯器不是緊湊模式的,我在wind

原创 c語言中static 函數和普通函數的區別?

C程序一直由下列部分組成: 1)正文段——CPU執行的機器指令部分;一個程序只有一個副本;只讀,防止程序由於意外事故而修改自身指令; 2)初始化數據段(數據段)——在程序中所有賦了初值的全局變量,存放在這裏。 3)非初始化數據段(bss

原创 Comparable接口的實現和使用

 1.什麼是Comparable接口 此接口強行對實現它的每個類的對象進行整體排序。此排序被稱爲該類的自然排序 ,類的 compareTo 方法被稱爲它的自然比較方法 。實現此接口的對象列表(和數組)可以通過 Collections.

原创 關於printf重定向到串口

我在某個CortextM3的源碼裏的debug.c找到了fputc。應該說,某些系統是通過fputc建立聯繫,而不是putchar的。如下:<span style="font-family:Verdana;font-size:14px;"

原创 輸出重定向函數

//加入以下代碼,支持printf函數,而不需要選擇use MicroLIB    #if 1 #pragma import(__use_no_semihosting)                      struct __F

原创 c 語言中結構體

結構(struct)      結構是由基本數據類型構成的、並用一個標識符來命名的各種變量的組合。  結構中可以使用不同的數據類型。      1. 結構說明和結構變量定義      在Turbo C中, 結構也是一種數據類型, 可以使

原创 c中字符數組的問題

 通常字符數組中的所存儲的內容也可以稱爲字符串, 但我想你想表達的意思可能是對於: char *p1 = "A String."; 和 char p2[] = "Another String."; 這兩種寫法的不同吧. p1指向的

原创 回車 & 換行

在計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以打10個字符。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字符。要是在這0.2秒裏面,又有新的字符傳過來,那麼

原创 java 泛型

 一. 泛型概念的提出(爲什麼需要泛型)? 首先,我們看下下面這段簡短的代碼: 1 public class GenericTest { 2 3 public static void main(String[] a

原创 sim900a call

SIM900A手機模塊的3大功能:接撥電話,收發短信和TCP/UDP通信。現在的手機基本上可以不叫手機了,真正的手機功能(前面所說的3大功能)佔用不到1/5的主機資源。其實手機的工作原理非常簡單,就是一個主機與從機(sim900a之類的D

原创 Why does “extern const int n;” not work as expected?

a.cpp: const int n = 8; b.cpp: extern const int n; int main() { // error LNK2001: unresolved external symbol "int

原创 vsprintf函數和va_list用法詳解

今天寫AVR單片機程序,看串口通訊函數: void UART1_Printf(char *fmt,...) {  va_list ap;  char string[128];  va_start(ap, fmt);  vsprintf(