質問編集履歴
3
ソースコードの追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,20 +27,37 @@
|
|
27
27
|
### 該当のソースコード
|
28
28
|
|
29
29
|
```C++
|
30
|
+
//ポートの設定
|
31
|
+
#define PORT "/dev/serial0"
|
30
32
|
|
31
33
|
//変数宣言
|
32
34
|
uint8_t data[500];
|
33
35
|
int length;
|
34
36
|
|
35
37
|
//オープン
|
36
|
-
fd = open(
|
38
|
+
fd = open(PORT, O_RDWR);
|
37
39
|
if (fd < 0) {
|
38
40
|
printf("open error\n");
|
39
41
|
return -1;
|
40
42
|
}
|
41
43
|
|
42
|
-
//BaudRate など設定 (
|
44
|
+
//BaudRate など設定 (追記)
|
45
|
+
struct termios tms;
|
43
46
|
|
47
|
+
tms.c_cflag += CREAD;
|
48
|
+
tms.c_cflag += CLOCAL;
|
49
|
+
tms.c_cflag += CS8;
|
50
|
+
tms.c_cflag += 0;
|
51
|
+
tms.c_cflag += 0;
|
52
|
+
|
53
|
+
cfsetispeed(&tms, 115200);
|
54
|
+
cfsetospeed(&tms, 115200);
|
55
|
+
|
56
|
+
cfmakeraw(&tms);
|
57
|
+
tcsetattr(fd, TCSANOW, &tms);
|
58
|
+
ioctl(fd, TCSETS, &tms);
|
59
|
+
|
60
|
+
|
44
61
|
//受信処理ループ
|
45
62
|
while(1) {
|
46
63
|
length = read(fd, data, sizeof(data));
|
2
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Raspberry Pi3 の UART 通信について (8bit データ
|
1
|
+
Raspberry Pi3 の UART 通信について (8bit データを受信したい)
|
body
CHANGED
File without changes
|
1
初心者マークの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
BaudRate は 115200 であり,データビットは 8bit, ストップビットは 1bit です.
|
6
6
|
Raspberry Pi3 の設定 (UARTの有効化など) は完了しています.
|
7
7
|
|
8
|
-
read関数を
|
8
|
+
read関数をもちいて該当のソースコードに示すような受信処理のループを作成したのですが,500 個のデータが表示されず,1 個や 2 個といった細切れ状態で表示されてしまいます.
|
9
9
|
また,表示される値も正確なものでないようです.
|
10
10
|
|
11
11
|
### 発生している問題・エラーメッセージ
|