請問各位做微控制器開發的兄弟,我最近在用定時器中斷來定時傳送資料到上位機,現在明顯感覺這個定時間不夠

2022-04-09 06:38:01 字數 2062 閱讀 6222

1樓:匿名使用者

你的意思是,舉個例子:定時器一次能定0.5ms,但是你要2ms傳送一次資料,是不是?那簡單啊,讓定時器中斷4次才傳送一次資料啊。

比如在定時器中斷裡設計一個變數,當變數減為0時即傳送資料,同時將變數恢復初值:

char cnt; 全域性變數

isr() //中斷程式

//如果cnt為0,即傳送資料,並重置cnt

2樓:匿名使用者

定時器的最大定時間隔一般是ms級,如果想更大,就程式設計來增加時間吧就是將定時器的最大定時間多次相加,做個判斷就可以瞭如將定時器定時是50ms中斷,在中斷中做個標識變數count++,如果做一秒

在主程式中做if count==20

3樓:匿名使用者

最大的時間間隔?

我只知道定時器最短時間不好弄,沒聽說最大的不好弄的,最短的時間間隔與mcu主頻有關,短了不精確。

若要得到最大間隔,很簡單啊,比如我想有個100分鐘的間隔,但是定時器不可能有100分鐘這麼長的定時的,那解決辦法是累加。

如:設一個1秒的定時器中斷,那麼100分鐘就等於6000秒,流程是中斷每隔1秒進入一次,進入之後就把一個暫存器+1,判斷當暫存器=6000,即6000/60=100分鐘,此時就可以傳送資料給上位機了。

不知道你要的是不是這個答案,還是說你另有其意。

4樓:匿名使用者

不明白!我也沒整過這種東西!

stm32微控制器如何處理qt上位機串列埠中發過來的資料?

5樓:匿名使用者

微控制器接收處理串列埠的資料的過程就是配置好波特率、位寬、校驗位等,收到資料 後可以引起中斷,也可以查詢標誌位,然後進行相應的處理。

1) 串列埠時鐘使能,gpio 時鐘使能。

2) 設定引腳複用器對映:呼叫 gpio_pinafconfig 函式。

3) gpio 初始化設定:要設定模式為複用功能。

4) 串列埠引數初始化:設定波特率,字長,奇偶校驗等引數。

5) 開啟中斷並且初始化 nvic,使能中斷(如果需要開啟中斷才需要這個步驟)。

6) 使能串列埠。

7) 編寫中斷處理函式:函式名格式為 usartxirqhandler(x 對應串列埠號)

6樓:馮小氣氣

微控制器有串列埠中斷。串列埠每收到1byte資料就會觸發1次接收中斷。中斷一般像下面這面,你可以根據自己的需求改。

我的做法是中段裡只管接收資料,然後定時器中監測一定時間內沒有收到資料,認為資料接收完畢,然後置位接受完成標誌。在主函式中查詢這個標誌,進行資料處理。

void usart1_irqhandler (void)//串列埠中斷

if(usart_getitstatus(usart1,usart_it_rxne)!= reset)   //receive data register not empty interrupt.

if(flag == 1)}

51微控制器程式設計問題(串列埠很難將資料傳送至上位機)

7樓:矮子根

首先,串列埠波特率2400,作為串列埠波特率**的定時器1計數方式2初值應為0xf4;而你的初裝值

為0xfd,且pcon中最高位又設定為1,那麼波特率實為19200,其次,pcon=0x80為波特率倍增設定,故而19200又倍增為38400。這已遠遠超出了51微控制器的頻

率範圍,

第三,雖然設定了串列埠方式1(t1控波),但未設定串列埠中斷(ti)。所以當傳送完一個字元後,cpu並未產生中斷訊號,無法判斷是否已傳送完畢 ,故而持續等待中斷的發生,造成時間上的佔用,延緩了傳送速度。

51微控制器串列埠通訊,資料在傳送後,上位機沒有接收到資料。

8樓:做而論道

而且,串列埠中斷也沒進去,弄了很久不知道是什麼問題!

----

既然沒有收到,也沒有進入串列埠中斷,

那麼,你怎麼就知道,資料傳送出去了?

既然,你確信是發出去了,應該就是上位機的問題,那麼,你換一個上位機,再試試看。

做硬體開發,看微控制器的datasheet,都主要看哪些內容

邏輯關係 工作電壓 封裝最重要的 工作時序圖 電壓,然後注意各個管教的特殊功能,比如串列埠就一定要接在有串列埠功能的引腳,外部中斷就一定要接在有外部功能的引腳,如此類的。如果是微控制器的datasheet 不是周邊ic 依需求來就好了 需要什麼看什麼 不用的功能先扔了 做硬體設計 對於微控制器的資料...

微控制器讀取18B20的溫度,請問微控制器與18B20之間的連線最長多少米?我想達到100米需加放大電路嗎

1000米都是沒有問題的,一般的微控制器工作的頻率不會到100mhz,8051最常用的就是12mhz的晶振 12mhz的頻率專,四根之間不用都考慮什 屬麼波形變形什麼的,而且,100米的線能有多少電阻的,100歐都不到,不需要什麼上拉電阻的,除非是電路本身就是需要有上拉電阻的,當然了,加一個上拉是好...

我是做微控制器開發的,工作一年了,我怎麼能轉到嵌入式系統的研發

我也想知道,現bai 在我買了linux和duarm嵌入式開發的書籍,看啊zhi看啊,總dao是一頭霧水,沒有機會接觸嵌入式 回系答統研發的專案就沒有進步,我是這樣理解的。尋找機會接觸嵌入式系統開發的專案,有接觸入門就快了。找個培訓機構培訓學習一下也可以,時間上應該也快。嵌入式系統包括微控制器。我是...