合泰杯 合泰微控制器工程5之串列埠通訊

2021-10-21 02:36:27 字數 1438 閱讀 1054

我們先來看一下程式,前面沒什麼好說,就是定義和宣告資料計數、資料的長度等,重點看下面條件編譯的那部分,也是我標註的那一部分。

這裡使用了條件編譯,功能如下

#if 常量表示式 程式段1

#else程式段2

#endif

它的功能是,如常量表示式的值為真(非0),則對程式段1 進行編譯,否則對程式段2進行編譯。因此可以使程式在不同條件下,完成不同的功能。

例程中的brgh_0在uart.h中有進行了巨集定義為1了。所以這裡編譯的是程式_u0cr2=0b11101100;

再來看u0cr2暫存器,它的主要功能是控制傳送器、接收器以及各種 uart0中斷源的使能或除能。這裡就仔細解釋了,感興趣的可以在技術手冊上看看他們選擇的相應功能,以便讓自己有乙個更深的理解。

傳送乙個位元組的函式,如果想傳送乙個陣列可以定義乙個字串型陣列,然後用for迴圈傳送即可。

void

uart_send_byte

(unsigned

char data_byte)

接收資料函式

//	receive serial data   接收一系列資料   

// 這裡是乙個中斷函式

void

__attribute((

interrupt

(0x3c))

)uart_receive

(void

)else

else

} _ur0f=0;

}}

主函式

#include

"ht66f2390.h"

#include

"delay.h"

#include

"uart.h"

#include

"led.h"

#include

"string.h"

//呼叫strlen函式要引入字串的標頭檔案

void

main()

for(i=

0;i)uart_send_byte

(rcv_data[i]);

receive_finish_flag=0;

//清除接收標誌位 }if

(t==

100)

led2 =

!led2;

//led2取反用來顯示工作是否正常

t=0;

}gcc_clrwdt()

;//清除看門狗

}}

合泰杯 合泰微控制器工程6之定時器中斷

二 主函式main 總結void time2 init void 定時器2初始化 我們先來一句一句的分析 第一和第二條語句涉及到定時器部分兩個最重要的暫存器。emi 0 關閉總中斷 time2 count if time2 count 100 stm2af 0 清除定時器中斷標誌位 emi 1 開啟...

Holtek合泰微控制器《完》合泰杯競賽總結

今 2019.11.3日,合泰杯決賽結束的第二天。獲得訊息,喜提 等獎。在比賽決賽當天,可以說各個隊伍有著天馬行空的想法,並將它們一一實現,其中也有很多我想過的一些作品想法,比如 自動澆花系統,農場無人機系統,導盲拐杖,導盲鍵盤,懸空滑鼠等,這些在決賽當天都有見到。本小組的旁邊小組的作品是蜘蛛探測機...

合泰微控制器做電壓表 合泰微控制器總結

1 合泰微控制器總結 測試環境c編譯器v21.debug2.3.陣列,支援一維 二維陣列 大小小於1 bank 4.使用const關鍵字,變數將儲存於程式儲存區,如,const uint8 t tab 1,2,3 5.中斷服務函式 pragma vector isr tmr0 0x0c 定義中斷入口...