ucos OS_ENTER_CRITICAL

  今天又看了一下ucos保護臨界段代碼,ucos是利用禁止中斷來保護臨界段的。ucos給我們提供了三種方法:一:直接關中斷和直接開中斷。即成對使用,保證臨界段的安全。二:先把原來的中斷狀態壓入棧中,然後再關閉中斷。恢複時直接從棧中返回原來儲存的中斷狀態。三:先儲存原來的中斷狀態到一個變數中,然後再關閉中斷。 三種情況我都說完了,下面我說一下為什麼有這三種形態:其實,這三種方法從應用上可分為兩種,可嵌套和不可嵌套。其實大家分析一下,所謂保護臨界段代碼就是關中斷,在作業系統內部本身就是關中斷、然後

STM32的USART重新導向實現printf函數

幾個步驟完成在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

stm32串口程式

  困擾了我N就的串口問題終於在昨天下午解決了,那叫一個開心啊,哈哈。開心之餘又有點沮喪,應為東拼西湊下來的程式,雖然跑通了,但是還有一些地方看不明白,算了,還是先記錄下來,慢慢研究。    閑話少說,直接上代碼吧,希望能幫到看到它的朋友,也希望您看了以後,能指點一二。    一、時鐘定義:       void RCC_Configuration(void){  ErrorStatus HSEStartUpStatus;  //將外設RCC寄存器重設為預設值    RCC_DeInit(); 

VC中使用Sleep函數的注意事項

VC中的Sleep函數在延時應用中很好用,比如通訊程式中,一方需等待另一方若干個毫秒後再處理,或者在死迴圈中,讓出CPU不至於資源佔用100%等等;但是,在介面操作中不要使用Sleep函數,比如按鈕事件中,不要調用這個函數,否則會出現意外的情況!!那麼如何處理延時一段時間執行呢?使用定時器,將按鈕事件中調用Sleep函數中的地方,改為啟動一個一段時間執行後的定時器:SetTimer(定時器編號,毫秒數後執行,NULL);執行的動作放到定時器回呼函數中執行,如果僅執行一次的,那麼進到回呼函數後首先

static,inline,volatile的作用

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;  

VC介面庫資料整理

1. http://bbs.csdn.net/topics/390368164金山介面庫是基於DirectUI技術的介面庫,和BCG、Xtreme Toolki等介面庫差別還是比較大的,BCG、Xtreme Toolki都是基於MFC擴充的介面庫,所有控制項都是基於Windows視窗的,DirectUI則是通過自繪、貼圖的方式來實現的各種控制項,一般都是通過XML設定檔來進行介面的描述,修改資源和設定檔可以方便的改變介面的風格,並且可以做出來更好看的介面,現在流行的用戶端應用都是基於Direct

任務建立函數OSTaskCreate解析 .

任務是作業系統處理的首要對象,在多任務啟動並執行環境中,任務的管理需要考慮多方面的因素,最基本的任務管理是任務的建立。任務建立函數有兩種,一種是基本的建立函數OSTaskCreate,另一種是擴充的任務建立函數OSTaskCreateExt。兩個函數都實現了任務的建立,但是OSTaskCreateExt的功能更強,帶有很多附加的功能,如果不需要附加功能,OSTaskCreate是完全可以勝任的,沒有哪一個更好之說,完全根據需要來選擇。      

stm32系統時鐘配置函數

/****************************************************************************  *  * 名稱:  RCC_Configuration  *  * 描述:  設定系統時鐘  *  * 返回:  無  *  ****************************************************************************/  void RCC_Configuration(void) 

ucos中關於訊號量的使用總結 .

在ucos-II中,為了實現任務之間的同步,用到的同步機制有:訊號量,郵箱和訊息佇列。其中這裡我主要說下對訊號量的使用經驗。訊號量在建立時,調用OSSemCreate(INT16U cnt)函數。cnt為訊號量的初始值。對cnt賦予不同的值,所起到的作用不同。如果Semp = OSSemCreate(0), 該訊號量表示等待一個事件或者多個事件的發生。 例如:我們現在想實現這樣一個功能:當有按鍵按下時,PWM蜂鳴器響起;無按鍵時,蜂鳴器不響。這是我們就可以分別建立兩個任務,Task1和Task2

使用OPENGL顯示中文的類

    使用OPENGL顯示中文的類//GLfont.cpp: implementation of the GLfont class.////////////////////////////////////////////////////////////////////////#include "GLfont.h"#include "gl/gl.h"////////////////////////////////////////////////////////////////////////

STM32之USART

最近這幾天一直在忙在STM32的USART實驗,雖然網上有很多的執行個體,自己也曾完全按照書的常式一個字不少的輸入電腦中,但在實際編程中總是出現太多的錯誤。最終利用模擬發現最終的錯誤,僅僅是多了一個函數,為了這一個函數,我調試了整整兩天。呵呵,最終還是做出來啦以下是實驗程式:/* Includes ------------------------------------------------------------------*/#include

stm32標準外設庫使用詳解 .

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   

ucos OS_ENTER_CRITICAL . .

http://blog.csdn.net/zhanglianpin 今天又看了一下ucos保護臨界段代碼,ucos是利用禁止中斷來保護臨界段的。ucos給我們提供了三種方法:一:直接關中斷和直接開中斷。即成對使用,保證臨界段的安全。二:先把原來的中斷狀態壓入棧中,然後再關閉中斷。恢複時直接從棧中返回原來儲存的中斷狀態。三:先儲存原來的中斷狀態到一個變數中,然後再關閉中斷。 三種情況我都說完了,下面我說一下為什麼有這三種形態:其實,這三種方法從應用上可分為兩種,可嵌套和不可嵌套。其實大家分析一下,

UCOS2作業系統調試步驟

http://tiandongying.blog.163.com/blog/static/1636128212010101833611564/1,實驗一#include "includes.h"void main(void){     OSInit();         關LED;     OSStart();}void OSTaskIdleHook(void){      if(LED is ON){      關LED;     }else{      開LED;  

使用CLabel類的不解事項

這樣的一個問題:介面上一組(一堆)靜態控制項,比如類比控制器上許多按鈕,當某個訊號來時,一些設定為紅色(故障),當另一個訊號來時,一些設定為綠色(正常),使用了CLabel類,在http://www.codeproject.com/KB/static/clabel.aspx上下載,因為它可以直觀設定【背景色】。因為是“一組按鈕”(不是一個),程式應該用迴圈的方式來遍曆“每一個按鈕”,而不是直接去直觀的“按鈕2設定顏色、按鈕2設定顏色,。。。。按鈕N設定顏色”。第一次我選用了迴圈遍曆控制項ID下標

擷取的群組合鍵VC編程

① 捕獲【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)

XPe-SLD匯入錯誤提示

SLD匯入錯誤提示翻譯:Bill zhong(cudng@msn.com)日期:2007-08-16譯文用作學術交流,版歸原著所有. 現象: 您會在Component Database Manager匯入一個新的SLD檔案時得到一個錯誤.提示:不能在目標檔案刪除貯藏的檔案.請確保你能寫這些檔案許可權.解決途徑:Component Database Manager將刪除任何先前版本,再以副本形式更新檔案.在/Windows Embedded Data

詳解STM32的PWM輸出及頻率和脈寬(占空比)的計算——寄存器配置六步曲

一、stm32的pwm輸出引腳是使用的IO口的複用功能。二、T2~T5這4個通用定時器均可輸出4路PWM——CH1~CH4。三、我們以tim3的CH1路pwm輸出為例來進行圖文講解(其它類似),並在最後給出tim3的ch1和ch2兩路pwm輸出的c代碼(已在STM32F103RBT6上測試成功,大家放心使用!)。四、給出了PWM頻率和占空比的計算公式。步驟如下:1、使能TIM3時鐘RCC->APB1ENR |= 1 << 1;2、配置對應引腳(PA6)的複用輸出功能GPIOA-

最簡單的JNI

 最簡單的JNI       JNI就是“Java本地化”,適用於和C/C++混合編程,複雜的理論不必多說,下面一個例子說明了怎樣JNI。以下工作都在一個開發目錄下,假設環境變數都已經設好。       1. 編寫類似這樣的java檔案,儲存為 HelloWorld.java 的檔案,並javac HelloWorld 產生class檔案              class HelloWorld               {                     public

設定某一行背景顏色的CListCtrl

三個介面函數,設定某一行的文字顏色(前景色彩)和背景色,使用說明都放在注釋裡了,自己看吧:LineColorListCtrl.h#if !defined(AFX_LINECOLORLISTCTRL_H__92EB1CD4_CD33_4E02_A098_367A8FEFF38E__INCLUDED_)#define AFX_LINECOLORLISTCTRL_H__92EB1CD4_CD33_4E02_A098_367A8FEFF38E__INCLUDED_#if _MSC_VER > 10

總頁數: 61357 1 .... 26134 26135 26136 26137 26138 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.