用超時檢測法實現USART的非定長接收

2021-09-25 04:38:48 字數 991 閱讀 5113

參考文章

自己完整的把程式寫了一遍。

funcinit函式

#include

"stm32f10x.h"

void

usart1_init

(unsigned

int baudrate)

u8 timstate;

//每次接收時間為timstate(自定義)*一次計數時間(arr和psc決定)

u8 rxbuffer[

100]

;u8 rxcounter=0;

void

usart1_irqhandler

(void)}

void

tim3_init

(u16 arr,u16 psc)

u8 rxflag=0;

//接收完成時flag置位

u8 rxnum;

void

tim3_irqhandler

(void

)//tim3 中斷

}tim_clearitpendingbit

(tim3, tim_it_update )

;//清除定時器中斷標誌}//

//int fputc(int ch, file *f)

//

main函式

mem:在用iar進行除錯時download完成之後要讓程式go起來,然後再用串列埠除錯助手傳送

用非遞迴的方法實現快速排序

用遞迴的方法實現的演算法一般都可以用非遞迴,即迴圈,的方法實現。實現的方法一般都需要借助乙個棧。記待排序陣列為a,有n個數。本演算法的思路很簡單 1 先將陣列的尾下標和首下標先後壓入棧s 2 當s不為空時,從s中先後彈出兩個數front和end,表示待排序的區間。在該區間內使用partion演算法,...

非平衡電橋電阻計算 絕緣檢測電橋法中的幾個重要概念

前面多多少少寫過兩篇關於電橋法的內容,今天就繼續介紹電橋法的幾個關鍵概念。這兩個概念經常遇到,但又很難找到官方的出處,這裡大概把它們澄清一下。平衡電橋是指人為併入上下橋臂的電阻阻值是相等的,在下圖中,即r1 r2 它引入電路的改變是平衡的,當絕緣電阻出現上下不相等時,造成了上下分壓的不一致,通過檢測...

用棧實現Fibnacci遞迴過程的非遞迴演算法

include include using namespace std 模擬遞迴工作棧。data表示當前狀態的引數值 state表示當前棧的完成狀態,state 2 表示未計算,state 1 表示計算了遞迴樹左部,state 0 表示計算了整個遞迴子樹 struct stacknode stack...