cuốn sách gpt4 ai đã làm

c++ - C++、Mac OS X 10.6.8 中的串口问题

In lại Tác giả: Walker 123 更新时间:2023-11-28 03:29:19 26 4
mua khóa gpt4 Nike

我已经运行了以下代码,并且它一直运行。但是,它似乎不等待任何输入,我从缓冲区获得的唯一输出是“\377”我一直在阅读 POSIX 操作系统的串行编程指南并尝试使用那里提供的一些建议,但我认为我的配置中的某些东西可能会把它扔掉。如有任何想法,我们将不胜感激。

#include 
sử dụng không gian tên std;
#include /* Standard input/output definitions */
#include /* String function definitions */
#include /* UNIX standard function definitions */
#include /* File control definitions */
#include /* Error number definitions */
#include /* POSIX terminal control definitions */


int open_port() {
int fd; //Descriptor for the port
fd = open("/dev/tty.usbmodemfa141", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1) {
cout << "Unable to open port. \n";
}
khác {
cout << "Port opened.\n";
}
cout << "Descriptor in open:";
cout << fd;
cout << "\n";
return fd;
}

int configure_port (int fd) {
struct termios options;

tcgetattr(fd, &options);
cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);

options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_cflag |= (CLOCAL | CREAD);
tcsetattr(fd, TCSANOW, &options);

cout << "Port configured.\n";

return (fd);
}

void read_data(int fd) {
cout << "Reading data from: ";
cout << fd;
cout << "\n";

char buffer;
buffer = fcntl(fd, buffer, 0);
cout << "Buffer: ";
cout << buffer;
cout << "\n";
}

int main (int argc, char * const argv[]) {
int fd; //Descriptor for the port

fd = open_port();
configure_port(fd);
cout << "Descriptor: ";
cout << fd;
cout<< "\n";
read_data(fd);
cout << "Data read.";

trả về 0;
}

câu trả lời hay nhất

你没有从串口读取!

来自 OSX fcntl manual page :

fcntl -- file control

fcntl函数是控制文件描述符的。要阅读,您需要 read功能。

关于c++ - C++、Mac OS X 10.6.8 中的串口问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13023250/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress