/**************************************************************************** * * 名稱: RCC_Configuration * * 描述: 設定系統時鐘 * * 返回: 無 * ****************************************************************************/ void RCC_Configuration(void)
http://tiandongying.blog.163.com/blog/static/163612821201081705741378/1、OS_CPU.H (1)根據所用處理器,定義資料類型; (2)定義OS_ENTER_CRITICAL() 和OS_EXIT_CRITICAL(); (3)定義OS_ISR_PROTO_EXT; OS_STK_GROWTH ; uCOS_SW_VECT ; (4)定義 OS_TASK_SW() 和C_ISR_ENTER()
ucosii的任務有兩種:使用者任務和系統任務。使用者任務是為解決應用問題而編寫的,系統任務是為應用程式來提供服務的。任務是程式的動態表現,在作業系統中體現為線程,是程式的一次執行過程。程式是靜止的,存在於ROM、硬碟等外圍裝置中。任務是運動的,存在於記憶體中,有睡眠、就緒、運行、阻塞、掛起等多種狀態。系統的程式多次執行是可以的,這樣就形成了多個優先順序不同的任務,每一個都是獨立的。
下面的程式從5種方法,關閉彈出的MessageBox對話方塊:首先,建立定時器和彈出MessageBox:void CTestDlg::OnBnClickedButton1(){//啟動一個定時器,用於自動觸發關閉MessageBox對話方塊SetTimer(1, 1000, NULL);//啟動一個MessageBox對話方塊,並檢查它的傳回值int ret = MessageBox("Hello", "MyMessageBox", MB_YESNO);if (ret ==
stm32標準外設庫是stm32全系列晶片的外設驅動,有了它可以大大加速我們開發stm32。 首先從st公司的網站下載最新的stm32標準外設庫,寫本文時最新的版本是V3.5.0。 解壓該zip檔案,得到如下檔案夾和檔案STM32F10x_StdPeriph_Lib_V3.5.0\ _htmresc Libraries Project Utilities Release_Notes.html stm32f10x_stdperiph_lib_um.chm
http://tiandongying.blog.163.com/blog/static/16361282120108951837415/讀《uCOSⅡ中文教程.pdf》筆記1、建立INCLUDES.H,可以統一標頭檔,雖然編譯的時候多浪費了時間,但是增強程式的移植性。2、定義可移植的資料類型。Typedef3、定義全域宏方法。 #ifdef OS_GLOBALS #define OS_EXT #else #define OS_EXT extern
http://blog.csdn.net/zhanglianpin 今天又看了一下ucos保護臨界段代碼,ucos是利用禁止中斷來保護臨界段的。ucos給我們提供了三種方法:一:直接關中斷和直接開中斷。即成對使用,保證臨界段的安全。二:先把原來的中斷狀態壓入棧中,然後再關閉中斷。恢複時直接從棧中返回原來儲存的中斷狀態。三:先儲存原來的中斷狀態到一個變數中,然後再關閉中斷。 三種情況我都說完了,下面我說一下為什麼有這三種形態:其實,這三種方法從應用上可分為兩種,可嵌套和不可嵌套。其實大家分析一下,
文字檔中的空白行,可能是一個Null 字元串;也可能是空格、定位字元組成的空白行,刪除時要注意!//// 統計一個字串是否全部是白字元 (0x09–0x0D 或者 0x20)組成//bool IsAllSpace(CString &str){int len = str.GetLength();int k = 0;bool bAllSpace = true;for (int i=0; i<str.GetLength(); i++){if
http://tiandongying.blog.163.com/blog/static/16361282120108155533351/μC/OS-Ⅱ學習筆記(2)--核心結構 2010-09-16 14:25:16| 分類:作業系統 | 標籤:|字型大小大中小 訂閱讀《uCOSⅡ中文教程.pdf》筆記1、臨界段。注意關中斷的時間。微處理器一般都有關中斷/開中斷指令,使用者使用的C 語言編譯器必須有某種機制能夠在C 中直接實現關中斷/開中斷地操作。某些C 編譯器允許在使用者的C
http://blog.csdn.net/zhanglianpin/article/details/6759595今天又看了一下ucos保護臨界段代碼,ucos是利用禁止中斷來保護臨界段的。ucos給我們提供了三種方法:一:直接關中斷和直接開中斷。即成對使用,保證臨界段的安全。二:先把原來的中斷狀態壓入棧中,然後再關閉中斷。恢複時直接從棧中返回原來儲存的中斷狀態。三:先儲存原來的中斷狀態到一個變數中,然後再關閉中斷。 三種情況我都說完了,下面我說一下為什麼有這三種形態:其實,這三種方法從應用上可
首先聲明我不是給小米打廣告,我也不是小米的人,只是最近有很多人問我怎麼刷小米,我就把這篇還不錯的刷小米的文章寫在這裡,方便那些需要的人。
下面的程式實現了套打的功能,當然也可以按自己想要的方式列印;同時還實現了列印裝置的無關性。該列印程式源碼放在:http://download.csdn.net/detail/dijkstar/4667098上面連結裡同時還放了一個TinyPDF,供沒有真實印表機的朋友使用。程式的思路非常簡單,使用CPrintDialog建立起一個標準列印對話方塊,點擊確定後,在最上面和左邊列印位置字串,有了這些位置,後面就可以和要列印的紙張對比(對著燈光或太陽),很容易定位到列印處。下面是實現的代碼(整個程式就
http://tiandongying.blog.163.com/blog/static/163612821201081623225765/讀《uCOSⅡ中文教程.pdf》筆記1、建立任務。任務可以在多任務調度開始前建立,也可以在其它任務的執行過程中被建立。在開始多任務調度(即調用OSStart())前,使用者必須建立至少一個任務。任務不能由中斷服務程式(ISR)來建立。2、建立任務。INT8U OSTaskCreate (void (*task)(void *pd), void *pdata,
最近在看資料手冊的時候,發現在Cortex-M3裡,對於GPIO的配置種類有8種之多:(1)GPIO_Mode_AIN 類比輸入(2)GPIO_Mode_IN_FLOATING 浮空輸入(3)GPIO_Mode_IPD 下拉輸入(4)GPIO_Mode_IPU 上拉輸入(5)GPIO_Mode_Out_OD 開漏輸出(6)GPIO_Mode_Out_PP 推挽輸出(7)GPIO_Mode_AF_OD 複用開漏輸出(8)GPIO_Mode_AF_PP
http://tiandongying.blog.163.com/blog/static/16361282120101017102928777/讀《嵌入式即時作業系統uC/OS-II》第二版1、與處理器類型無關的代碼(P73)OS_CORE.C OS_FLAG.C OS_MBOX.C OS_MEM.C OS_MUTEX.C OS_Q.C OS_SEM.C OS_TASK.C OS_TIME.C uCOS_II.C
//// 需在stdafx.h檔案中加入//#import "msxml3.dll" //引入類型庫 #define MSXML MSXML2//// 啟動dxdiag.exe,使用它產生一個XML檔案//使用【dxdiag.exe /?】來查看用法//STARTUPINFO si = {sizeof(si), 0};PROCESS_INFORMATION pi = {0};TCHAR szCmdLine[MAX_PATH] = _T("dxdiag.exe /whql:off /x
//// 判斷一個浮點數是否落在範圍串中//範圍串符合數學上區間的定義:[a,b]、(a,b)、(-x, 100).....//“∞”用“x”表示//#define PASS_OK(100)#define PASS_NO(102)#define ERR_RANGE_STR(-100)int InRange(char *pBuf, double fVal){double fMin = 0.0, fMax = 0.0;CString strRange = pBuf;strRange.Replace(
假設兩個同樣的應用程式,運行在相同的作業系統上,要實現遠端控制,可以使用傳遞滑鼠和鍵盤的訊息給對方,對方收到後解析出滑鼠和鍵盤訊息如何執行即可。下面是幾處關鍵程式:一是處理收到訊息,下面應該放在通訊端接收或者串口接收中:(小心下面的按右鍵、雙擊幾處沒實現!)//// 解析從用戶端發送過來的訊息並發送到原生訊息佇列//void DispatchWMMessage(char *szString, void *p){CTestDlg *pDlg = (CTestDlg
① 捕獲【Ctrl、Ctrl+Alt】和【Ctrl+Alt+Shift】這樣的按鍵組合:BOOL CTestDlg::PreTranslateMessage(MSG* pMsg){if(pMsg->message==WM_KEYDOWN){BOOL bCtrl=::GetKeyState(VK_CONTROL)&0x8000;BOOL bShift=::GetKeyState(VK_SHIFT)&0x8000;BOOL bAlt=::GetKeyState(VK_MENU)
近日要實現遠端控制,需要捕獲本地滑鼠資訊,傳輸到遠端電腦。滑鼠事件,無非是WM_LBUTTONDOWN、WM_LBUTTONUP、WM_MOUSEMOVE(就說這基本的三個命令吧),開始以為很容易擷取這些事件,但在實現過程中,並不是想象中的那麼簡單:① 在基於MFC中的對話方塊應用程式中,可以在 PreTranslateMessage 中擷取(【主對話方塊】的或者是【CWinApp】的,應該說放在【CWinApp】中的PreTranslateMessage更好一些),如同下面:BOOL