91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

Hi3516d的GPIO9的2、3、5復(fù)用為uart485的管腳,是半雙工的,在收發(fā)的時(shí)候需要設(shè)置管腳,程序里有參考。已經(jīng)實(shí)現(xiàn)了數(shù)據(jù)的收發(fā)

資源截圖

代碼片段和文件信息

#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?????????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);?/*?設(shè)置為奇效驗(yàn)*/??
????????????Opt.c_iflag?|=?INPCK;?????????????/*?Disnable?parity?checking?*/?
????????????break;??
????????case?PARITY_CHECK:???
????????????Opt.c_cflag?|=?PARENB;?????/*?Enable?parity?*/????
????????????Opt.c_cflag?&=?~PARODD;???/*?轉(zhuǎn)換為偶效驗(yàn)*/?????
????????????Opt.c_iflag?|=?INPCK;???????/*?Disnable?parity?checking?*/
????????????break;?
????????default:???
????????????printf(“Unsupported?parity/n“);
????????????Opt.c_cflag?&=?~PARENB;
????????????Opt.c_cflag?&=?~CSTOPB;
break;??????
????}??
????/*?設(shè)置停止位*/??
????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?*/

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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

評(píng)論

共有 條評(píng)論