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

static、const、volatile、typeof關鍵字的用途描述

static、const、volatile、typeof關鍵字的用途描述static:靜態函數、靜態變數、靜態類成員         const:const變數,const指標、const函數         volatile:多線程共用變數        

連續,離散傅裡葉變換與級數

http://blog.csdn.net/xuexiang0704/article/details/8260890連續,離散的傅裡葉變換與級數還是很混!1.由於離散複指數的周期性,導致離散傅裡葉變換是有周期的(2π)。而由於這個原因,導致了一系列的差別性,比如離散的相乘特性:時域上的乘積等於頻域上的卷積(此時的卷積為周期卷積!)2.相乘特性時域上的乘積等於頻域上的卷積。(以連續訊號為例),離散訊號有一點區別。我們考慮如果在輸入訊號為a^t*u(t),頻域上為1/[1-ae^(-jw)];現在我們

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

MATLAB基本矩陣函數和操作

eye 單位矩陣 zeros 全零矩陣 ones 全1矩陣 rand 均勻分布隨機陣 genmarkov 產生隨機Markov矩陣 linspace 線性等分向量 logspace 對數等分向量 logm 矩陣對數運算 cumprod 矩陣元素累計乘 cumsum 矩陣元素累計和 toeplitz Toeplitz矩陣 disp 顯示矩陣和文字內容 length 確定向量的長度 size 確定矩陣的維數 diag 建立對角矩陣或抽取對角向量 find 找出非零元素1的下標 matrix

ucos-ii的任務控制塊 .

在作業系統初始化函數OSInit執行之後,使用者可以調用OSTaskCreate或者OSTaskCreateExt函數來建立使用者任務,因為這兩個函數是核心用來建立任務的,不允許使用者進行修改,因此被稱為系統服務。使用者任務的程式是以函數的形式遊使用者編寫,稱為使用者函數,和作業系統提供的服務劃分了界限,很明顯,必須將使用者函數的地址傳遞給建立任務的系統服務。在使用者任務中,同樣可以調用OSTaskCreate或者OSTaskCreateExt函數來建立其他的任務,也可以調用OSTaskDel來

任務建立函數OSTaskCreate解析 .

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

STM32 BIT_BAND 位帶別名區使用入門

支援了位帶操作(bit_band),有兩個區中實現了位帶。其中一個是SRAM 區的最低1MB 範圍,第二個則是片內外設  //  區的最低1MB 範圍。這兩個區中的地址除了可以像普通的RAM 一樣使用外,它們還都有自  //  己的“位帶別名區”,位帶別名區把每個位元膨脹成一個32 位的字  //  //  每個位元膨脹成一個32 位的字,就是把  1M  擴充為 32M ,  //  //  於是;RAM地址 0X200000000(一個位元組)擴充到8個32 位的字,它們是:  //   0

ucosii中的任務

        ucosii的任務有兩種:使用者任務和系統任務。使用者任務是為解決應用問題而編寫的,系統任務是為應用程式來提供服務的。任務是程式的動態表現,在作業系統中體現為線程,是程式的一次執行過程。程式是靜止的,存在於ROM、硬碟等外圍裝置中。任務是運動的,存在於記憶體中,有睡眠、就緒、運行、阻塞、掛起等多種狀態。系統的程式多次執行是可以的,這樣就形成了多個優先順序不同的任務,每一個都是獨立的。      

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

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

STM32的DMA示範,USART

/******************************************************************************* 本檔案實現串口發送功能(通過重構putchar函數,調用printf;或者USART_SendData() * 這裡是一個用串口實現大量資料轉送的例子,使用了DMA模組進行記憶體到USART的傳輸 * 每當USART的發送緩衝區空時,USART模組產生一個DMA事件, *

STM32之USART

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

uC/OS-II學習筆記-定義全域變數 . .

全域變數應該是得到記憶體配置且可以被其他模組通過C語言中extern關鍵字調用的變數。因此,必須在 .C 和 .H 檔案中定義。這種重複的定義很容易導致錯誤。以下討論的方法只需用在標頭檔中定義一次。雖然有點不易懂,但使用者一旦掌握,使用起來卻很靈活。表1.2中的 定義出現在定義所有全域變數的.H標頭檔中。程式清單 L 1.2 定義全域宏。 #ifdef   xxx_GLOBALS #define  xxx_EXT #else #define  xxx_EXT extern #endif  .H

作業系統之並發

大家在看任何一本關於作業系統的書的時候都會看到作業系統有一下主要功能:任務(進程)管理

UCOS2移植學習筆記(1)

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    

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;  

ucos OS_ENTER_CRITICAL .

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

有關推挽輸出、開漏輸出、複用開漏輸出、複用推挽輸出以及上拉輸入、下拉輸入、浮空輸入、類比輸入區別

最近在看資料手冊的時候,發現在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

總頁數: 61357 1 .... 16600 16601 16602 16603 16604 .... 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.