- /*
- 概要:とりあえず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関数を用いるのはわかるのですが...
メイン文の前にリセットベクタを記述しているのには
どんな意味があるのでしょうか?
返答よろしくお願いします.