設定項目 | 設定内容 |
---|---|
ボーレート | 57600bps |
キャラクタビット | 8ビット |
ストップビット | 1ビット |
パリティビット | なし |
転送クロックソース | 内部クロックf1(=16MHz) |
CTS機能 | 禁止 |
############### sect30.inc の一部を抜粋 ####################################### .lword dummy_int ; uart2 transmit(for user)(vector 15) .lword dummy_int ; uart2 receive(for user)(vector 16) .lword dummy_int ; uart0 transmit(for user)(vector 17) .lword dummy_int ; uart0 receive(for user)(vector 18) .lword dummy_int ; uart1 transmit(for user)(vector 19) .glb _receive .lword _receive ; uart1 receive(for user)(vector 20) .lword dummy_int ; timer A0(for user)(vector 21) .lword dummy_int ; timer A1(for user)(vector 22) .lword dummy_int ; timer A2(for user)(vector 23) .lword dummy_int ; timer A3(for user)(vector 24) .lword dummy_int ; timer A4(for user)(vector 25) |
/*------------------------------------------------------*/ /* ファイル名: ser03.c */ /* 内容: シリアルで文字列送受信 */ /* 日付: 2005.08.25(Thu) */ /* 作成者: denno_ono */ /*------------------------------------------------------*/ #include<oaks_sfr.h> #pragma INTERRUPT receive unsigned char ledn=0, ledold=0; typedef enum { // ボーレート設定リスト br4800 = 207, br9600 = 103, br14400 = 68, br19200 = 51, br28800 = 34, br31250 = 33, br57600 = 16 } BaudRate; // UART1初期化 void InitSCI3 (BaudRate b) { u1brg = b; // ボーレート設定 u1mr=0x05; //8ビット、内部クロック、1ストップビット、パリティなし u1c0=0x10; //クロックf1 u1c1=0x05; //送受信許可 ucon=0x00; //割り込み要因 s1ric=0x05; //シリアル受信割り込み(レベル5) } // 1文字送信 void rs_putc (char cd) { while(ti_u1c1==0); //バッファで見ないとデータが上書きされる場合あり u1tb = cd; } // 文字列送信 void rs_puts (char _far *st) { while(*st){ rs_putc(*st++); } } // 受信割り込み void receive (void) { ledn++; } int main(void) { char rdata; /* 受信バッファ */ int ct; p7=0xff; pd7=0xff; InitSCI3(br57600); _asm("\tFSET I"); while(1){ if(ledn!=ledold){ rdata = u1rbl; /* データ受信 */ rs_puts("message:"); rs_putc(rdata); rs_putc(0x0D); rs_putc(0x0A); p7=~ledn; ledold=ledn; } } return(0); } |
rs_putc(0x0D); rs_putc(0x0A);
0x0DはLF(改行)、 0x0AはCR(復帰)。
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||