资源简介
串口作为海思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高级接触与螺栓预紧--安世亚太
评论
共有 条评论