資源簡介
海思3531A芯片有四個串口uart單元,uart0是調試串口,默認打開。現添加uart1、uart2、uart3,測試驗證成功。

代碼片段和文件信息
/************************************************************************************************
*****Describe:?This?program?is?writen?to?operate?HI35xx?serial?devices.
*************************************************************************************************/
#include???????
#include?????
#include????
#include???
#include?????
#include?????
#include????
#include??????
#include?
#include???
#include?
#include?
#include?
#include?
//宏定義??
#define?HI_FALSE??-1??
#define?HI_TRUE?????0???
#ifdef?debugprintf
#define?debugpri(mesg?args...)?fprintf(stderr?“[HI?Serial?print:%s:%d:]?“?mesg?“\n“?__FILE__?__LINE__?##args)?
#else
#define?debugpri(mesg?args...)
#endif
int?HiSerfd;?
void?HI_Serial_Close(int?fd);
??
void?Hi_sigsegv(int?dummy)
{
if(HiSerfd?>?0)
HI_Serial_Close(HiSerfd);
fprintf(stderr?“Hi?Serial?Caught?SIGSEGV?Abort!\n“);
fclose(stderr);
abort();
}
void?Hi_sigterm(int?dummy)
{
if(HiSerfd?>?0)
HI_Serial_Close(HiSerfd);
fprintf(stderr?“Hi?Serial?Caught?SIGTERM?Abort!\n“);
fclose(stderr);
exit(0);
}
void?Hi_init_signals(void)
{
struct?sigaction?sa;
sa.sa_flags?=?0;
sigemptyset(&sa.sa_mask);
sigaddset(&sa.sa_mask?SIGSEGV);
sigaddset(&sa.sa_mask?SIGTERM);
sigaddset(&sa.sa_mask?SIGPIPE);
sa.sa_handler?=?Hi_sigsegv;
sigaction(SIGSEGV?&sa?NULL);
sa.sa_handler?=?Hi_sigterm;
sigaction(SIGTERM?&sa?NULL);
sa.sa_handler?=?SIG_IGN;
sigaction(SIGPIPE?&sa?NULL);
}
int?HI_Serial_Usage(void)
{
????printf(“Usage:\n“);
????printf(“\tmyhicom?[-d]??[-s]?get?netdeviece?info?[-rw]?read?or?wite?select\n“);
????printf(“\tmyhicom?[-h]?for?more?usage\n“);
????printf(“\tmyhicom?[-v]?the?verson?of?the?sofware\n“);
printf(“\tExample:\n\tmyhicom?-d?/dev/ttyAMA1?-s?115200?-w?HelloWorld!!!\n“);
}
/*
*Function:?HI_Serial_Open(int?fdchar*?ComDevice)??
*Param:?fd:file?descirbe?handle ?Serial?Device:?/dev/ttyAMA1?/dev/ttyAMA2
*Output:?Ok?or?Fail
*/
int?HI_Serial_Open(char*?HiSerDevice)??
{??
????int?fd;
fd?=?open(HiSerDevice?O_RDWR|O_NOCTTY|O_NDELAY);??
if?(HI_FALSE?==?fd)??
{??
perror(“HiSerial?Can‘t?Open?Serial?HiSerDevice“);??
return(HI_FALSE);??
}??
//恢復串口為阻塞狀態?????????????????????????????????
if(fcntl(fd?F_SETFL?0)?0)??
{??
debugpri(“fcntl?failed!\n“);??
return(HI_FALSE);??
}???????
else??
{??
debugpri(“fcntl=%d\n“fcntl(fd?F_SETFL0));??
}??
//測試是否為終端設備??????
if(0?==?isatty(STDIN_FILENO))??
{??
debugpri(“standard?input?is?not?a?terminal?device\n“);??
return(HI_FALSE);??
}??
else??
{??
debugpri(“isatty?success!\n“);??
}????????????????
printf(“fd->open=%d\n“fd);??
return?fd;??
}??
/*
*Function:?HI_Serial_Close(int?fd)?
*Param:?fd:file?descirbe?handle ?
*Output:?Null
*/
void?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????21185??2018-12-04?11:26??Hi3531A添加串口uart1-3\3.管腳復用寄存器.xlsx
?????文件?????515219??2018-12-04?16:52??Hi3531A添加串口uart1-3\3531A設備添加測試UART1-3.docx
?????文件??????11152??2018-12-04?16:25??Hi3531A添加串口uart1-3\com_test\hiserial.c
?????文件????????144??2018-12-04?16:14??Hi3531A添加串口uart1-3\com_test\Makefile
?????文件?????516648??2018-11-28?11:44??Hi3531A添加串口uart1-3\com_test\myhicom
?????文件????????137??2018-12-04?16:23??Hi3531A添加串口uart1-3\com_test\readme.txt
?????文件?????137334??2018-12-03?16:16??Hi3531A添加串口uart1-3\sp3232中文.docx
?????文件?????451072??2017-05-26?23:38??Hi3531A添加串口uart1-3\sscom32\sscom5.13.1.exe
?????文件???????5087??2018-12-04?14:31??Hi3531A添加串口uart1-3\sscom32\sscom51.ini
?????文件???????1028??2018-11-30?16:29??Hi3531A添加串口uart1-3\uart-regconfig.sh
?????目錄??????????0??2018-12-04?16:21??Hi3531A添加串口uart1-3\com_test
?????目錄??????????0??2018-12-04?16:12??Hi3531A添加串口uart1-3\sscom32
?????目錄??????????0??2018-12-04?16:55??Hi3531A添加串口uart1-3
-----------?---------??----------?-----??----
??????????????1659006????????????????????13
- 上一篇:組態王6.53工程密碼.rar
- 下一篇:基于FPGA的UART設計
評論
共有 條評論