Time of Update: 2018-12-04
特別對於電池供電系統來說,功耗是首要考慮的問題.我們知道單片機內部有一個電源管理寄存器PCON,這個寄存器的最低兩位,IDL和PD這兩位分別用來設定是否使單片機進入空閑模式和掉電模式。1. 空閑模式
Time of Update: 2018-12-04
const類型定義:指明變數或對象的值是不能被更新,引入的目的是為了取代先行編譯指令××××××常量必須被初始化×××××××××××××××const的作用 A 可以定義const常量,如 const int Max = 100; int Array[Max]; B 便於進行類型檢查,如 void f(const int i){...} 編譯器就會知道i是一個常量,不允許修改 C
Time of Update: 2018-12-04
從技術出身的專案經理,很容易犯這樣一個錯誤:對自以為簡單的問題,分配任務給成員時,會夾帶技術細節並表露出問題的簡單性。 譬如X專案經理接到客戶的新需求,要求更改頁面上的某個字串。於是立刻把成員A叫過來,“這個需求只要把對應頁面的字串改一下就OK了,5分鐘搞定,你趕快去改一下吧”。姑且不論這個問題是否真的簡單,首先的問題是,X混淆了專案經理和開發人員的界線。具體實現細節是開發人員的事,專案經理不需要關心,即使開發人員不懂如何?,那也是技術經理的事。此外,“5分鐘搞定”這種話,對開發人員來說往往是一
Time of Update: 2018-12-04
幾個步驟完成在SMT32的串口上使用printf函數1.#include <stdio.h>2.添加三個小函數void uart_put(u8 dat){ while(USART_GetFlagStatus(USART1,USART_FLAG_TC) == RESET); USART_SendData(USART1,dat);}int fputc(int ch, FILE
Time of Update: 2018-12-04
困擾了我N就的串口問題終於在昨天下午解決了,那叫一個開心啊,哈哈。開心之餘又有點沮喪,應為東拼西湊下來的程式,雖然跑通了,但是還有一些地方看不明白,算了,還是先記錄下來,慢慢研究。 閑話少說,直接上代碼吧,希望能幫到看到它的朋友,也希望您看了以後,能指點一二。 一、時鐘定義: void RCC_Configuration(void){ ErrorStatus HSEStartUpStatus; //將外設RCC寄存器重設為預設值 RCC_DeInit();
Time of Update: 2018-12-04
static、const、volatile、typeof關鍵字的用途描述static:靜態函數、靜態變數、靜態類成員 const:const變數,const指標、const函數 volatile:多線程共用變數
Time of Update: 2018-12-04
http://blog.csdn.net/xuexiang0704/article/details/8260890連續,離散的傅裡葉變換與級數還是很混!1.由於離散複指數的周期性,導致離散傅裡葉變換是有周期的(2π)。而由於這個原因,導致了一系列的差別性,比如離散的相乘特性:時域上的乘積等於頻域上的卷積(此時的卷積為周期卷積!)2.相乘特性時域上的乘積等於頻域上的卷積。(以連續訊號為例),離散訊號有一點區別。我們考慮如果在輸入訊號為a^t*u(t),頻域上為1/[1-ae^(-jw)];現在我們
Time of Update: 2018-12-04
作者:number007cool轉自:http://blog.chinaunix.net/uid-21658993-id-3025218.html放了一段時間,對stm32似乎有點陌生,總結一下!(基於3.0韌體庫,晶片stm32f103rbt6)1、配置串口的管腳和時鐘由於串口1、2是在GPIOA上:所以要是能串口GPIOA、AFIO和1或者2的串口時鐘,代碼如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB
Time of Update: 2018-12-04
VC中的Sleep函數在延時應用中很好用,比如通訊程式中,一方需等待另一方若干個毫秒後再處理,或者在死迴圈中,讓出CPU不至於資源佔用100%等等;但是,在介面操作中不要使用Sleep函數,比如按鈕事件中,不要調用這個函數,否則會出現意外的情況!!那麼如何處理延時一段時間執行呢?使用定時器,將按鈕事件中調用Sleep函數中的地方,改為啟動一個一段時間執行後的定時器:SetTimer(定時器編號,毫秒數後執行,NULL);執行的動作放到定時器回呼函數中執行,如果僅執行一次的,那麼進到回呼函數後首先
Time of Update: 2018-12-04
1、static (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多個檔案時,所有未加static首碼的全域變數和函數都具有全域可見度。為理解這句話,我舉例來說明。我們要同時編譯兩個源檔案,一個是a.c,另一個是main.c。下面是a.c的內容char a = 'A'; // global variablevoid msg() { printf("Hello/n"); } 下面是main.c的內容int main(void){ extern char a;
Time of Update: 2018-12-04
1. http://bbs.csdn.net/topics/390368164金山介面庫是基於DirectUI技術的介面庫,和BCG、Xtreme Toolki等介面庫差別還是比較大的,BCG、Xtreme Toolki都是基於MFC擴充的介面庫,所有控制項都是基於Windows視窗的,DirectUI則是通過自繪、貼圖的方式來實現的各種控制項,一般都是通過XML設定檔來進行介面的描述,修改資源和設定檔可以方便的改變介面的風格,並且可以做出來更好看的介面,現在流行的用戶端應用都是基於Direct
Time of Update: 2018-12-04
由於運放的電壓放大倍數很大,一般通用型運算放大器的開環電壓放大倍數都在80 dB以上。而運放的輸出電壓是有限的,一般在 10V~14V。因此運放的差模輸入電壓不足1 mV,兩輸入端近似等電位,相當於 “短路”。開環電壓放大倍數越大,兩輸入端的電位越接近相等。 “虛短”是指在分析運算放大器處於線性狀態時,可把兩輸入端視為等電位,這一特性稱為虛假短路,簡稱虛短。顯然不能將兩輸入端真正短路。
Time of Update: 2018-12-04
eye 單位矩陣 zeros 全零矩陣 ones 全1矩陣 rand 均勻分布隨機陣 genmarkov 產生隨機Markov矩陣 linspace 線性等分向量 logspace 對數等分向量 logm 矩陣對數運算 cumprod 矩陣元素累計乘 cumsum 矩陣元素累計和 toeplitz Toeplitz矩陣 disp 顯示矩陣和文字內容 length 確定向量的長度 size 確定矩陣的維數 diag 建立對角矩陣或抽取對角向量 find 找出非零元素1的下標 matrix
Time of Update: 2018-12-04
在作業系統初始化函數OSInit執行之後,使用者可以調用OSTaskCreate或者OSTaskCreateExt函數來建立使用者任務,因為這兩個函數是核心用來建立任務的,不允許使用者進行修改,因此被稱為系統服務。使用者任務的程式是以函數的形式遊使用者編寫,稱為使用者函數,和作業系統提供的服務劃分了界限,很明顯,必須將使用者函數的地址傳遞給建立任務的系統服務。在使用者任務中,同樣可以調用OSTaskCreate或者OSTaskCreateExt函數來建立其他的任務,也可以調用OSTaskDel來
Time of Update: 2018-12-04
任務是作業系統處理的首要對象,在多任務啟動並執行環境中,任務的管理需要考慮多方面的因素,最基本的任務管理是任務的建立。任務建立函數有兩種,一種是基本的建立函數OSTaskCreate,另一種是擴充的任務建立函數OSTaskCreateExt。兩個函數都實現了任務的建立,但是OSTaskCreateExt的功能更強,帶有很多附加的功能,如果不需要附加功能,OSTaskCreate是完全可以勝任的,沒有哪一個更好之說,完全根據需要來選擇。
Time of Update: 2018-12-04
一,反相放大器使用741晶片搭建的反相放大器電路:輸出電壓與輸入電壓的關係:輸出波形與輸入波形:二,電壓跟隨器使用741搭建的同相放大器:輸出電壓與輸入電壓的關係:輸出波形與輸入波形:(輸入波形做了一下垂直平移)三,同相放大器使用741搭建的電壓跟隨器:輸出電壓與輸入電壓的關係:輸出波形與輸入波形:四,同相反相放大與力學的槓桿原理的對比同相放大器反相放大器1,求和放大器瞭解用虛斷方法分析反相放大器,容易得到求和放大器的輸出:2,差分放大器根據虛短的原理,7和4處的電壓相同,R1和R2分壓,R3和
Time of Update: 2018-12-04
支援了位帶操作(bit_band),有兩個區中實現了位帶。其中一個是SRAM 區的最低1MB 範圍,第二個則是片內外設 // 區的最低1MB 範圍。這兩個區中的地址除了可以像普通的RAM 一樣使用外,它們還都有自 // 己的“位帶別名區”,位帶別名區把每個位元膨脹成一個32 位的字 // // 每個位元膨脹成一個32 位的字,就是把 1M 擴充為 32M , // // 於是;RAM地址 0X200000000(一個位元組)擴充到8個32 位的字,它們是: // 0
Time of Update: 2018-12-04
在ucos-II中,為了實現任務之間的同步,用到的同步機制有:訊號量,郵箱和訊息佇列。其中這裡我主要說下對訊號量的使用經驗。訊號量在建立時,調用OSSemCreate(INT16U cnt)函數。cnt為訊號量的初始值。對cnt賦予不同的值,所起到的作用不同。如果Semp = OSSemCreate(0), 該訊號量表示等待一個事件或者多個事件的發生。 例如:我們現在想實現這樣一個功能:當有按鍵按下時,PWM蜂鳴器響起;無按鍵時,蜂鳴器不響。這是我們就可以分別建立兩個任務,Task1和Task2
Time of Update: 2018-12-04
/******************************************************************************* 本檔案實現串口發送功能(通過重構putchar函數,調用printf;或者USART_SendData() * 這裡是一個用串口實現大量資料轉送的例子,使用了DMA模組進行記憶體到USART的傳輸 * 每當USART的發送緩衝區空時,USART模組產生一個DMA事件, *
Time of Update: 2018-12-04
全域變數應該是得到記憶體配置且可以被其他模組通過C語言中extern關鍵字調用的變數。因此,必須在 .C 和 .H 檔案中定義。這種重複的定義很容易導致錯誤。以下討論的方法只需用在標頭檔中定義一次。雖然有點不易懂,但使用者一旦掌握,使用起來卻很靈活。表1.2中的 定義出現在定義所有全域變數的.H標頭檔中。程式清單 L 1.2 定義全域宏。 #ifdef xxx_GLOBALS #define xxx_EXT #else #define xxx_EXT extern #endif .H