/* 概要:とりあえずRS232C通信 ブートローダーを使った書き込み マイコン:PIC18F2550 ファイル名:RS232C.c 開発環境:MPLAB C18 */ #include <p18f2550.h> #include <usart.h> #include <stdio.h> // リセットベクタ #pragma code reset_vector=0x1000 extern void _startup(void); void remapped_reset(void) { _asm goto _startup _endasm} #pragma code void main (void) { char Mes[10]="Start!!\r\n"; // configure USART OpenUSART(USART_TX_INT_OFF & //送信割込みの禁止 USART_RX_INT_OFF & //受信割込みの禁止 USART_ASYNCH_MODE & //非同期(調歩)モード USART_EIGHT_BIT & //8ビットモード USART_CONT_RX & //連続受信モード USART_BRGH_LOW, //低速ボーレート 77); //SPBRGレジスタ 9600 bps TRISC = 0b11111101; //RC7(RX): input mode RC6(TX): output mode while (1) { putsUSART(Mes); } CloseUSART(); }
SPBRGレジスタの計算方法
FOSC = HSPLL_HS//48MHz
通信速度:9600bps
USART_BRGH_LOW:64
48*1,000,000/9,600/64-1=77.125
RS232C.zip
ダウンロード
管理人さん
返信削除古い記事に今更となってしまいますが,質問です.
RS232Cを用いてシリアル通信する際に
USART関数を用いるのはわかるのですが...
メイン文の前にリセットベクタを記述しているのには
どんな意味があるのでしょうか?
返答よろしくお願いします.