資源簡介
串口作為海思CPU與外部芯片通信的一種重要方式,可以實現云臺控制、報警輸入輸出控制等功能,海思HI35xx平臺提供了多個串口設備,它們之間可以獨立使用,充分利用硬件資源,將功能發揮最大化。海思HI35xx平臺串口操作C源代碼及參考資料則提供了串口配置及串口操作的源代碼。
代碼片段和文件信息
/************************************************************************************************
*****Describe:?This?program?is?writen?to?operate?HI35xx?serial?devices.?????????????????????*****
*****Email:?lishuangliang@outlook.com?????????????????????????????????????????????? *****
*****Author:?shuang?liang?li *****
*****Date:?2018-09-30 *****
*************************************************************************************************/
#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?HiSerial: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)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???16072711??2017-11-29?20:30??海思串口操作C源碼及參考資料\Hi3536CV100?H.265編解碼處理器用戶指南.pdf
?????文件?????201528??2017-12-01?11:27??海思串口操作C源碼及參考資料\Hi3536CV100_PINOUT_CN.xlsx
?????文件????????326??2018-10-06?12:43??海思串口操作C源碼及參考資料\readme.txt
?????文件??????11281??2018-09-30?11:15??海思串口操作C源碼及參考資料\ttyAM\src\hiserial.c
?????文件????????670??2018-09-30?11:31??海思串口操作C源碼及參考資料\ttyAM\src\Makefile
?????文件???????8488??2018-09-30?11:31??海思串口操作C源碼及參考資料\ttyAM\src\myhicom
?????文件???????8560??2018-09-30?11:29??海思串口操作C源碼及參考資料\ttyAM\v100\myhicom
?????文件???????9080??2018-09-30?11:30??海思串口操作C源碼及參考資料\ttyAM\v200\myhicom
?????文件???????8692??2018-09-30?11:30??海思串口操作C源碼及參考資料\ttyAM\v400\myhicom
?????文件???????8488??2018-09-30?11:31??海思串口操作C源碼及參考資料\ttyAM\v500\myhicom
?????文件???????8480??2018-09-30?11:31??海思串口操作C源碼及參考資料\ttyAM\v510\myhicom
?????目錄??????????0??2018-10-06?12:38??海思串口操作C源碼及參考資料\ttyAM\src
?????目錄??????????0??2018-10-06?12:34??海思串口操作C源碼及參考資料\ttyAM\v100
?????目錄??????????0??2018-10-06?12:34??海思串口操作C源碼及參考資料\ttyAM\v200
?????目錄??????????0??2018-04-23?16:44??海思串口操作C源碼及參考資料\ttyAM\v300
?????目錄??????????0??2018-10-06?12:34??海思串口操作C源碼及參考資料\ttyAM\v400
?????目錄??????????0??2018-10-06?12:34??海思串口操作C源碼及參考資料\ttyAM\v500
?????目錄??????????0??2018-10-06?12:34??海思串口操作C源碼及參考資料\ttyAM\v510
?????目錄??????????0??2018-10-06?12:34??海思串口操作C源碼及參考資料\ttyAM
?????目錄??????????0??2018-10-06?12:38??海思串口操作C源碼及參考資料
-----------?---------??----------?-----??----
?????????????16338304????????????????????20
- 上一篇:( ISE使用詳解.pdf )
- 下一篇:ANSYS高級接觸與螺栓預緊--安世亞太
評論
共有 條評論