资源简介
Hi3516d的GPIO9的2、3、5复用为uart485的管脚,是半双工的,在收发的时候需要设置管脚,程序里有参考。已经实现了数据的收发
代码片段和文件信息
#include “TirUart.h“
int speed_arr[] = { B2000000 B1500000 B921600 B115200 B38400 B19200 B9600 B4800 B2400 B1200 B300
B2000000 B1500000 B921600 B115200 B38400 B19200 B9600 B4800 B2400 B1200 B300 };
int name_arr[] = {2000000 1500000 921600 115200 38400 19200 9600 4800 2400 1200 300
2000000 1500000 921600 115200 38400 19200 9600 4800 2400 1200 300 };
pthread_mutex_t uart_write_lock;
pthread_mutex_t uart_read_lock;
void set_speed(int fd int speed)
{
int i;
int status;
struct termios Opt;
tcgetattr(fd &Opt);
for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++) {
if (speed == name_arr[i]) {
tcflush(fd TCIOFLUSH);
cfsetispeed(&Opt speed_arr[i]);
cfsetospeed(&Opt speed_arr[i]);
status = tcsetattr(fd TCSANOW &Opt);
if (status != 0) {
perror(“tcsetattr fd1“);
return;
}
tcflush(fdTCIOFLUSH);
}
}
}
int UartInit(int fd int baudint databitsint stopbitsenum UartCheck mParity)
{
struct termios Opt;
tcgetattr(fd&Opt);
set_speed(fdbaud);
pthread_mutex_init(&uart_write_lockNULL);
pthread_mutex_init(&uart_read_lockNULL);
Opt.c_cflag &= (~CSIZE);
switch (databits)
{
case 5:
Opt.c_cflag |= CS5;
break;
case 6:
Opt.c_cflag |= CS6;
break;
case 7:
Opt.c_cflag |= CS7;
break;
case 8:
Opt.c_cflag |= CS8;
break;
default:
Opt.c_cflag |= CS8;
printf(“Unsupported data size/n“);
break;
}
switch (mParity)
{
case NO_CHECK:
Opt.c_cflag &= ~PARENB; /* Clear parity enable */
Opt.c_iflag &= ~INPCK; /* Enable parity checking */
break;
case ODD_CHECK:
Opt.c_cflag |= (PARODD | PARENB); /* 设置为奇效验*/
Opt.c_iflag |= INPCK; /* Disnable parity checking */
break;
case PARITY_CHECK:
Opt.c_cflag |= PARENB; /* Enable parity */
Opt.c_cflag &= ~PARODD; /* 转换为偶效验*/
Opt.c_iflag |= INPCK; /* Disnable parity checking */
break;
default:
printf(“Unsupported parity/n“);
Opt.c_cflag &= ~PARENB;
Opt.c_cflag &= ~CSTOPB;
break;
}
/* 设置停止位*/
switch (stopbits)
{
case 1:
Opt.c_cflag &= ~CSTOPB;
break;
case 2:
Opt.c_cflag |= CSTOPB;
break;
default:
printf(“Unsupported stop bits/n“);
return UART_FALSE;
}
Opt.c_cc[VTIME] = 0;
Opt.c_cc[VMIN] = 0; /* Update the options and do it NOW */
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-26 17:40 uart\
文件 584 2018-07-26 15:33 uart\Makefile
文件 5631 2018-07-26 17:36 uart\uart_api.c
文件 857 2018-07-26 15:17 uart\uart_api.h
文件 1572 2018-07-26 17:38 uart\uart_main.c
相关资源
- 在线聊天系统ssh整合开发struts spring
- CPort做的串口调试助手 delphi
- 基于LabVIEW单片机串口通信小程序
- LabVIEW串口四通道示波器
- SpringMVC+Shiro+MongoDB+BootStrap基础框架
- WHILE循环语句的翻译程序设计LL1法、输
- highgui100.dll
- zigbee-cc2530 串口收发
- 串口助手 eCOM V5
- Struts2+Spring+Hibernate在线商城项目源代
- struts2+hibernate做的上传和文件
- 自动化药房系统与 HIS 接口方案
- hibernate注解中英文版
- STM32F207 串口通讯程序
- RS232串口通信
- SPCOMM for delphi 7
- MSCommLib串口通信库
- hid_lib.rar
- FPGA Verilog 串口收发+流水灯程序
- delphi编写的数据库连接测试
- NGSIM 数据集NGSIM__Vehicle_Trajectories_and
- rhino waterman插件随机建立各种异形
- 实验室安全考试系统题库整合
- 串口调试器2002,不用安装,直接执行
- RAD Studio 10.2.3 Tokyo v25.0.31059.3231 最新破
- 易语言串口调试助手汉字收发 CRC
- Delphi下用Lame编码器把WAV转成MP3
- vs2010 串口通信 全部源代码 运行过可
- chinanet无线账号破解
- qt 绘制流程图程序——Diagram
评论
共有 条评论