资源简介
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
相关资源
- 信号奇异点Lipschitz指数计算
- 希尔密码加密、解密和破密
- 易语言OTG串口通信
- delphi 串口通讯
- XE7UP1Kg13_Unis.exe
- usb hid调试工具
- HID调试助手
- STM32蓝牙和串口程序
- Reparatory Effects of Nicotine on NMDA Recepto
- Apolipoprotein E4 Impairs in vivo Hippocampal
- Histamine excites rat lateral vestibular nucle
- Fabrication and all-optical poling characteris
- VirTest5.0.rar
- LCD显示温度+串口接收温度.rar
- WPF USB 网络 串口 通信软件
- SSM+Shiro+redis实现单点登陆
- DELPHI与西门子200PLC的串口通信实例
- Verilog FPGA UART串口控制器
- USB转串口驱动,FT232R驱动程序,最新
- hidusage.h hidpi.h 等USB开发用头文件
- PC -- 单片机的串口数据传输系统设计
- STM32F103 串口程序(完整版)
- delphi 通过Ping命令检测网络是否正常
- stm32 ds18b20 温度传感器 测试通过
- PC 串口调试软件
- 51单片机读取温度数据存储到SD卡中并
- ReportMachine 交叉报表 学生成绩表
- 单片机与PC机串口通讯仿真
- 串口调试助手V5.0
- 双串口调试助手 V4.0 _ 可同时调试两个
评论
共有 条评论