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