|
H8-3069LANマイコンに送るプログラムは下のsci1_2.cです。こちらにおきます。ダウンロードして使ってください。 内容はほとんど基本編8のsci0_2.cと同じです。不要なところを削ったくらいです。
あと、文字受信終了の判断文字を0x0A(LF=改行)に変更しました。
/*シリアルポートsci0を使った通信(受信)*/
#include <string.h>
#include <mes2.h>
int main() {
int fd,i,len,r = 0;
unsigned char lcd[82];
char *a;
unsigned char Word[] = "ニュウリョクシテクダサイ:";
// ポインタに配列lcdの先頭アドレスを入れる
a = lcd;
// LCD画面の消去
fd = open("lcd0", 0);
for(i=0;i<32;++i){
seek(fd, i);
fprintf(fd, " ");
}
close(fd);
fd = open("com0", 0);
write(fd, Word, strlen(Word));
close(fd);
do{
// 文字入力があるまで待つ
while(r == 0){
fd = open("com0",0);
sleep(80);
r = read(fd, a, 1);
close(fd);
printf("%d",r);
}
r = 0;
// ポインタaを一要素分進める
a = ++a;
}
// ENTERキーが押されるまで受け付ける
while(*(a-1)!= 0x0A);
//受信したらLCDに書き出す
fd = open("lcd0", 0);
write(fd, lcd, strlen(lcd));
close(fd);
len = strlen(lcd);
printf("\r\n%d文字受信しました\r\n",len);
}//main
また、LabVIEWプログラム(ブロックダイアグラム)は以下のとおりです。下の図をクリックすると、大きい図が見られます。
こちらも少し手を加えました。ベースは前回の基本編11のプログラムです。LabVIEWが速いのでH8マイコン側の受信が追いつくように、文字一つ一つを送る間の「送信間隔」をだいぶ長めに取っています。

|