fm17550的c串口例程
时间: 2023-09-20 20:12:32 浏览: 80
以下是FM17550 NFC读写芯片的C语言串口例程:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#define RST_PIN 9
#define SS_PIN 10
int fd; // 串口文件描述符
void init_serial() {
fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1) {
perror("open serial port error");
exit(1);
}
struct termios options;
tcgetattr(fd, &options);
options.c_cflag = B9600 | CS8 | CLOCAL | CREAD;
options.c_iflag = IGNPAR;
options.c_oflag = 0;
options.c_lflag = 0;
tcflush(fd, TCIFLUSH);
tcsetattr(fd, TCSANOW, &options);
}
void write_serial(char* data, int len) {
int n = write(fd, data, len);
if (n < 0) {
perror("write serial port error");
exit(1);
}
}
int read_serial(char* data, int max_len) {
char buf[max_len];
int n = read(fd, buf, max_len);
if (n < 0) {
perror("read serial port error");
exit(1);
}
memcpy(data, buf, n);
return n;
}
int main() {
init_serial(); // 初始化串口
printf("FM17550 reader initialized.\n");
char buffer[256];
while (1) {
memset(buffer, 0, sizeof(buffer));
int len = read_serial(buffer, sizeof(buffer));
if (len > 0) {
printf("Received %d bytes: ", len);
for (int i = 0; i < len; i++) {
printf("%02X ", (unsigned char)buffer[i]);
}
printf("\n");
}
usleep(1000);
}
return 0;
}
```
这个例程使用了Linux系统的串口编程接口,打开了/dev/ttyACM0设备作为串口,用9600波特率进行通信。通过read_serial函数读取串口接收的数据,并通过printf函数输出到终端。你可以根据自己的需求进行修改和扩展。