资源简介
主要是使用POLLIN中断去读取串口数据,这是我认为和stm32最近似的一种串口中断
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include “serial.hpp“
/****************************************************************
* Constants
****************************************************************/
#define SYSFS_GPIO_DIR “/sys/class/gpio“
#define POLL_TIMEOUT (3 * 1000) /* 3 seconds */
#define MAX_BUF 64
/****************************************************************
* gpio_export
****************************************************************/
int gpio_export(unsigned int gpio)
{
int fd len;
char buf[MAX_BUF];
fd = open(SYSFS_GPIO_DIR “/export“ O_WRONLY);
if (fd < 0) {
perror(“gpio/export“);
return fd;
}
len = snprintf(buf sizeof(buf) “%d“ gpio);
write(fd buf len);
close(fd);
return 0;
}
/****************************************************************
* gpio_unexport
****************************************************************/
int gpio_unexport(unsigned int gpio)
{
int fd len;
char buf[MAX_BUF];
fd = open(SYSFS_GPIO_DIR “/unexport“ O_WRONLY);
if (fd < 0) {
perror(“gpio/export“);
return fd;
}
len = snprintf(buf sizeof(buf) “%d“ gpio);
write(fd buf len);
close(fd);
return 0;
}
/****************************************************************
* gpio_set_dir
****************************************************************/
int gpio_set_dir(unsigned int gpio unsigned int out_flag)
{
int fd len;
char buf[MAX_BUF];
len = snprintf(buf sizeof(buf) SYSFS_GPIO_DIR “/gpio%d/direction“ gpio);
fd = open(buf O_WRONLY);
if (fd < 0) {
perror(“gpio/direction“);
return fd;
}
if (out_flag)
write(fd “out“ 4);
else
write(fd “in“ 3);
close(fd);
return 0;
}
/****************************************************************
* gpio_set_value
****************************************************************/
int gpio_set_value(unsigned int gpio unsigned int value)
{
int fd len;
char buf[MAX_BUF];
len = snprintf(buf sizeof(buf) SYSFS_GPIO_DIR “/gpio%d/value“ gpio);
fd = open(buf O_WRONLY);
if (fd < 0) {
perror(“gpio/set-value“);
return fd;
}
if (value)
write(fd “1“ 2);
else
write(fd “0“ 2);
close(fd);
return 0;
}
/****************************************************************
* gpio_get_value
****************************************************************/
int gpio_get_value(unsigned int gpio unsigned int *value)
{
int fd len;
char buf[MAX_BUF];
char ch;
len = snprintf(buf sizeof(buf) SYSFS_GPIO_DIR “/gpio%d/value“ gpio);
fd = open(buf O_RDONLY);
if (fd < 0) {
perror(“gpio/get-value“);
return fd;
}
read(fd &ch 1);
if (ch != ‘0‘) {
*value = 1;
} else {
*value = 0;
}
close(fd);
return 0;
}
/*************************************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5454 2019-04-28 23:41 try_serial_interrupt\gpio_test.cpp
文件 20936 2019-04-28 23:40 try_serial_interrupt\main
文件 1480 2019-04-28 23:41 try_serial_interrupt\main.cpp
文件 316 2019-04-28 23:41 try_serial_interrupt\main.hpp
文件 5585 2019-04-28 23:41 try_serial_interrupt\serial.cpp
文件 1599 2019-04-28 23:41 try_serial_interrupt\serial.hpp
目录 0 2019-04-28 23:42 try_serial_interrupt\
相关资源
- libserial_port.so
- QT开发的串口通讯软件(基于qextseri
- modbus通讯协议进行温湿度数据的采集
- 解决了关闭死锁的CSerialPort类项目
- Serial ATA AHCI 1.1 Specification.pdf
- SerialPort.zip
- CSerial串口标准函数头文件
- SGMII Serial-GMII Specification
- WinCe Json 源码
- serial2ethernet.rar
- Eltima_Virtual.Serial.Port.Driver.8.0.412.Reg.
- Virtual Serial Port Driver64虚拟串口+虚拟串
- Virtual_Serial_Port_Driver8.zip
- vspd 虚拟串口 Virtual Serial Port Driver 7
- Keil_ARM_MDK_5.00_Keygen_serial_Crack.rar
- Serial to Ethernet Connector 5.0.7.376
- serial_ethernet_connector_v7.1.876
- Serial to Ethernet Connector 7.1 Build (7.1.
- Microsoft_Office_2019 Serializer
- LePutty SSH Connection 串口联机serial
- 安卓串口通信开发第三方库libserial_
- Qt5_SerialPort.zip
- 安卓 4个串口助手 源码 及APK
- Prolific USB-to-Serial Comm Port 驱动for win
- mpc5748g_can_demo.zip
- 基于VS2015编写的串口调试助手
- ModbusSlave7.0和ModbusPoll 7.2.3软件32和64位
- Odin+-+Inspector+and+Serializer+2.1.6.unitypac
- 串口调试助手XCOM V2.1
- SerialPort_VS2019.rar
评论
共有 条评论