我們先來看一下程式,前面沒什麼好說,就是定義和宣告資料計數、資料的長度等,重點看下面條件編譯的那部分,也是我標註的那一部分。
這裡使用了條件編譯,功能如下
#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 定義中斷入口...