51微控制器程式設計如何將串列埠緩衝區中的資料儲存為陣列格式

2021-08-31 19:59:45 字數 2710 閱讀 9259

1樓:有學問的免子

可以用軟體程式設計實現,可以參考

char a[4]

if(ri)

ri=0;

a[4]=sbuf;

i++將一個陣列存入資料庫和使用的語言有關係。

通常的做法是將陣列的內容轉換後傳遞到和語言相關的資料處理方法中進行處理。

涉及到的資料轉換的方法:

1:可以轉換為json格式

[,]2:可以轉換為xml12

資料處理方法解析轉換後的字串,執行資料庫儲存操作。

2樓:匿名使用者

微控制器程式好像有問題

void serial () interrupt 4 using 3///////////////////////////////void serial () interrupt 4 using 3

3樓:二木澤

我是用c寫的,我想方法應該大同小異吧。要存到陣列裡面,你首先要定義一個陣列,然後可以利用一個迴圈,每迴圈一個,寫到一個元素裡面,直到寫完,明白不?我寫段程式給你吧

char a[4]

if(ri)

ri=0;

a[4]=sbuf;

i++程式就這樣,你可能要稍微改下,平時有時間多看下書,其實微控制器很簡單

4樓:匿名使用者

byte g_bsciindex;

byte g_bscibuf[32];

在中斷函式裡面

g_bscibuf[g_bsciindex++] = rx_reg;

我需要一個程式,51微控制器串列埠接受到一幀資料並把這一幀資料賦值到一個陣列中。 30

5樓:李天花板

這不就是串列埠接收嗎,copy你看下stc有資料的,可以用中斷也可以用查詢方法來接收,這麼說還不會的話,哦。。。多看下資料了,只能這麼說。這麼的,貼一點我自己的**你參考看下吧:

void scom1main() interrupt 4}}}}

6樓:新居辨兄

你這串列埠接收子程式,只要接收到第一個位元組的資料就一直在中斷子程式中,然後等待接收版其它資料了,權

while(!ri); 這就是在等待接收其它資料了,接收完了以後又在中斷子程式連續傳送了。這麼寫程式是有很大弊病的,一旦進入中斷程式,到最後傳送結束,都一直在中斷子程式中,那這個期間微控制器是不能再做其它工作的,也就是不能再執行主程式了。

while(!ri);這就是查詢方式等待接收資料,那又何必寫成中斷程式呢,不如直接寫成查詢程式了,同樣下面的, while(!ti);這也明明是在查詢方式傳送,就不必要寫在中斷程式中了。

既然採用中斷的方式,就是當接收到一個資料後才響應一次中斷,儲存這個資料,然後就立即從中斷返回,這樣,繼續執行主程式,這樣,接收資料和傳送資料才不影響主程式。

同理,在中斷程式傳送一個位元組的資料就立即從中斷返回執行主程式,也不影響主程式的執行。

另外,更重要的一點就是while(!ri);,等待接收資料,如果不能收到資料就永遠等待下去,假如通訊線有故障,或者傳送方有問題,不能傳送資料了,那麼將永遠等待下去,這就相當於宕機了,多可怕,寫程式就怕這個事情發生的。

c語言微控制器程式設計中,怎樣將一個串列埠的到得字串賦值給一個陣列

7樓:匿名使用者

1、串列埠字bai節為:dusbuf

暫存陣列:a

依次將接收到zhi的位元組存入a[0],a[1],a[2],...a[n],

接收完畢,存入字元

dao串結束標回識:a[n+1]=0

a就代表一答個字串。

如果是一串數字,要轉為整數。

2、例程:

#include

#define uchar unsigned charuchar a[16],num;

void uart() interrupt 4}main()

8樓:g肯定

你得註釋

bai, 越看頭越大du, unsigned char fifo_head=0; //往fifo寫入

資料時zhi的dao位置版unsigned char fifo_tail=0; // 讀出fifo時的位置unsigned char rx1_pos=0; //當前的接收權位置unsigned char rx1_num=0; //資料長度unsigned char frame_in=

9樓:匿名使用者

串列埠位元組為:sbuf

暫存陣列:a

依次將接收到的位元組存入a[0],a[1],a[2],...a[n],接收完畢,存入字串結束標識:內a[n+1]=0a就代表一個字串。容

如果是一串數字,要轉為整數:

int temp=0;

char i;

for(i=0;i

如果串列埠接收的是數字的ascii碼字串,則:

for(i=0;a[i]!=0;i--)

temp為所得整數。

10樓:匿名使用者

要想一個字元一個字元的賦值,就老老實實寫個迴圈吧

11樓:匿名使用者

#include

#define uchar unsigned charuchar a[16],num;

void uart() interrupt 4}main()

51微控制器程式設計,用C語言,51微控制器程式設計時彙編和C語言如何結合?

給你一個矩陣鍵盤的參考程式 行列掃描 通過高四位全部輸出低電平,低四位輸出高電平。當接收到的資料,低四位不全為高電平時,說明有按鍵按下,然後通過接收的資料值,判斷是哪一列有按鍵按下,然後再反過來,高四位輸出高電平,低四位輸出低電平,然後根據接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪...

51微控制器的串列埠io(txd,rxd),能否同時接到兩片ma

理論上是可以的,但你必須從應答的流程上保證,在任意時刻最多只能有一個從 版機在傳送資料,這權點要考慮清楚。另外,txd,rxd可能驅動不了這麼多口子,最簡單的辦法,你可以將訊號輸入到一個74ls04,以增強其驅動。可以!用一片cd4052晶片把txd rxd分接到兩片max232晶片中去。cd405...

51微控制器通訊問題,串列埠除錯助手能接受微控制器傳送的資料,但是微控制器卻不能接受串列埠除錯助手傳送的資料

delay 延時短一點,其他沒看出有問題 在除錯rs232串列埠通訊時,微控制器往pc機上發資料,串列埠除錯助手可以接收,但是pc往微控制器發資料,接收不到。如果用的是51微控制器,除了確認電纜沒問題外,可以查一下又沒有可能不小心把對應rxd的sfr給賦值0了,查這個不一定要看程式,可以拔掉微控制器...