DLL API

如何使用

jtool.dll是由C语言编写的最底层动态链接库,以兼容所有其他应用层语言的调用
jtool.dll提供最简单易用的API,能最快速的实现需要的功能
将jtool.dll文件导入自己的工程即可,其中jtool.h文件中包含了所有API接口和枚举的声明

枚举类型

typedef enum
{
    dev_all = -1,
    dev_i2c = 0,
    dev_io,
    dev_spi,
    dev_can,
    dev_max,
}dev_type_enum;

typedef enum
{
    ErrNone = 0,//成功
    ErrParam = 1 << 0,//参数错误
    ErrDisconnect = 1 << 1,//USB 断开
    ErrBusy = 1 << 2,//USB发送忙
    ErrWaiting = 1 << 3,//正在等待回复
    ErrTimeOut = 1 << 4,//通信超时
    ErrDataParse = 1 << 5,//通信数据错误
    ErrFailACK = 1 << 6,//返回失败参数
} ErrorType;

typedef enum
{
    REGADDR_NONE = 0,//不发送地址
    REGADDR_8Bit = 1,//发送8位地址
    REGADDR_16Bit = 2,//发送16位地址
    REGADDR_24Bit = 3,//发送24位地址
    REGADDR_32Bit = 4,//发送32位地址
}REGADDR_TYPE;

typedef enum
{
    SINGLEALL = 0,//所有阶段都是单线
    QUADALL = 1,//所有阶段都是四线
    QUADDATA = 2,//仅数据阶段四线,其他单线
    SINGLECMD = 3,//仅指令阶段单线,其他四线
}QSPI_TYPE;

typedef enum
{
    LOW_1EDG = 0,
    LOW_2EDG = 1,
    HIGH_1EDG = 2,
    HIGH_2EDG = 3,
} SPICK_TYPE;

typedef enum
{
    ENDIAN_MSB = 0,//高位在前
    ENDIAN_LSB = 1,//低位在前
} SPIFIRSTBIT_TYPE;

typedef enum
{
    FIELD_NONE = 0,//无
    FIELD_ONE,//1字节
    FIELD_TWO,//2字节
    FIELD_THREE,//3字节
    FIELD_FOUR,//4字节
} FIELDLEN_TYPE;

typedef enum
{
    INT_NONE = 0,//无
    INT_RISE = 1,//上升沿
    INT_FALL = 2,//下降沿
    INT_HIGH = 3,//高电平
    INT_LOW = 4,//低电平
    INT_RISE_FALL = 5,//双边沿
}INT_TYPE;

//(JI2C、JSPI)INT引脚中断回调函数类型
typedef void (*I2CIntCallbackFun)(void);
typedef void (*SPIIntCallbackFun)(void);

接口总览

公共API接口

在操作设备之前,需要先使用DevOpen打开设备
打开设备后,将占用此设备,别的进程无法再次打开被占用的设备,直到设备被DevClose关闭,或占用设备的进程退出
DevicesScan可扫描插入的设备,以字符串格式返回

接口名概述
DevicesScan查看当前接入的设备
DevOpen打开设备
DevClose关闭设备

JTool-IO API接口

JTool-IO模块大部分函数提供额外的_m结尾的API,含义是以按位mask的方式执行,方便同时执行多个引脚
例如:
0x0f 低4位为1,则同时设置IO1~IO4
0x03 低2位为1,则同时设置IO1和IO2
部分函数是应用于所有通道的,则不提供_m结尾的API

接口名概述
IOSetNone设置为空模式
IOSetNone_m设置为空模式(mask多通道执行)
IOSetIn设置为IO输入
IOSetIn_m设置为IO输入(mask多通道执行)
IOSetOut设置为IO输出
IOSetOut_m设置为IO输出(mask多通道执行)
IOSetVal设置输出的电平
IOSetVal_m设置输出的电平(mask多通道执行)
IOSetOutWithVal设置为IO输出,同时设置输出电平
IOSetOutWithVal_m设置为IO输出,同时设置输出电平(mask多通道执行)
IOPulseOn脉冲输出常开
IOPulseOn_m脉冲输出常开(mask多通道执行)
IOPulseOff脉冲输出停止
IOPulseOff_m脉冲输出停止(mask多通道执行)
IOPulseCnt输出固定脉冲数
IOPulseCnt_m输出固定脉冲数(mask多通道执行)
IOPulseFreq设置脉冲输出频率
IOPulseFreq_m设置脉冲输出频率(mask多通道执行)
PWMSetFreq设置PWM输出频率
PWMSetOut设置为PWM输出
PWMSetOut_m设置为PWM输出(mask多通道执行)
PWMSetOn开启PWM输出
PWMSetOn_m开启PWM输出(mask多通道执行)
PWMSetOff停止PWM输出
PWMSetOff_m停止PWM输出(mask多通道执行)
PWMSetDuty设置PWM占空比
PWMSetDuty_m设置PWM占空比(mask多通道执行)
CapSetIn设置为PWM捕获
CapClearCnt清空捕获脉冲数计数
ADCSetIn设置为ADC采集
ADCSetIn_m设置为ADC采集(mask多通道执行)
ADCSetSamp设置ADC采样率
IOGetInVal获取IO输入电平值
IOGetInVal_m获取IO输入电平值(mask多通道执行)
IOGetPulseRemain获取脉冲输出剩余计数
IOGetPulseRemain_m获取脉冲输出剩余计数(mask多通道执行)
CapGetVal获取PWM捕获值
ADCGetVal获取ADC采样值
ADCGetVal_m获取ADC采样值(mask多通道执行)
JIOReboot重启JIO设备
JIOSetVcc设置JIO VCC输出电压
JIOSetVio设置JIO VIO电平
JIOSetID设置JIO设备的ID
JIOIntoBoot重启JIO,进入bootloader

JTool-I2C API接口

接口名概述
I2CScan扫描I2C从机地址
I2CWriteI2C写数据
I2CReadI2C读数据
I2CReadWithDelayI2C读数据(带延时)
EEWriteEEPROM写数据
EEReadEEPROM读数据
I2CRegisterIntCallback注册中断回调函数
I2CCloseIntCallback关闭中断回调函数
JI2CReboot重启JI2C设备
JI2CSetVcc设置JI2C VCC输出电压
JI2CSetVio设置JI2C VIO电平
JI2CSetSpeed设置JI2C通信速率
JI2CSetID设置JI2C设备的ID
JI2CIntoBoot重启JI2C,进入bootloader

JTool-SPI API接口

接口名概述
SPIWriteOnlySPI仅写数据
SPIReadOnlySPI仅读数据
SPIWriteReadSPI写同时读数据
QSPIWriteOnlyQSPI仅写数据
QSPIReadOnlyQSPI仅读数据
SPIWriteWithCMDSPI带指令(CMD、ADDR、ALT、DUMMY)写数据
SPIReadWithCMDSPI带指令(CMD、ADDR、ALT、DUMMY)读数据
SPIRegisterIntCallback注册中断回调函数
SPICloseIntCallback关闭中断回调函数
JSPIReboot重启JSPI设备
JSPISetVcc设置JSPI VCC输出电压
JSPISetVio设置JSPI VIO电平
JSPISetSpeed设置JSPI通信速率
JSPISetID设置JSPI设备的ID
JSPIIntoBoot重启JSPI,进入bootloader

--------公共接口--------

DevicesScan

查看当前接入的设备

语法

char* DevicesScan(
    int DevType,
    int* OutCnt
    );

参数
[in] DevType 设备类型,参考dev_type_enum枚举值
[out] OutCnt 返回扫描到的设备数量

返回值
扫描到的设备,以字符串表示,如果扫描到多个设备,以\r\n分割

DevOpen

打开设备

语法

void* DevOpen(
    int DevType,
    char* Sn,
    int Id
    );

参数
[in] DevType 设备类型,参考dev_type_enum枚举值
[in] Sn 指定要打开的设备SN,字符串类型,如不指定,请使用NULL
[in] Id 指定要打开的设备ID,取值范围(0~65535),如不指定,请使用-1

返回值
如果打开成功,返回设备句柄(即设备指针),后续的操作需要用到此句柄
如果打开失败,返回NULL

DevClose

关闭设备

语法

BOOL DevClose(
    void* DevHandle
    );

参数
[in] DevHandle 需要关闭的设备句柄(即设备指针)

返回值
如果关闭成功,返回TRUE
如果关闭失败,返回FALSE

--------JIO接口--------

IOSetNone

单个引脚设置为空模式

语法

ErrorType IOSetNone(
    void* DevHandle,
    uint32_t ionum
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetNone_m

多个引脚设置为空模式(mask多通道执行)

语法

ErrorType IOSetNone_m(
    void* DevHandle,
    uint32_t iomask
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetIn

单个引脚设置为IO输入

语法

ErrorType IOSetIn(
    void* DevHandle,
    uint32_t ionum,
    BOOL pullup,
    BOOL pulldown
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] pullup 是否上拉
[in] pulldown 是否下拉

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetIn_m

多个引脚设置为IO输入(mask多通道执行)

语法

ErrorType IOSetIn_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t pullups,
    uint32_t pulldowns
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] pullups 是否上拉(按位使能)
[in] pulldowns 是否下拉(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetOut

单个引脚设置为IO输出

语法

ErrorType IOSetOut(
    void* DevHandle,
    uint32_t ionum,
    BOOL pp
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] pp 是否推挽输出

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetOut_m

多个引脚设置为IO输出(mask多通道执行)

语法

ErrorType IOSetOut_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t pps
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] pps 是否推挽输出(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetVal

单个引脚设置输出的电平

语法

ErrorType IOSetVal(
    void* DevHandle,
    uint32_t ionum,
    BOOL val
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] val 是否输出高电平

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetVal_m

多个引脚设置输出的电平(mask多通道执行)

语法

ErrorType IOSetVal_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t vals
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] vals 是否输出高电平(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetOutWithVal

单个引脚设置为IO输出,同时设置输出电平

语法

ErrorType IOSetOutWithVal(
    void* DevHandle,
    uint32_t ionum,
    BOOL pp,
    BOOL val
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] pp 是否推挽输出
[in] val 是否输出高电平

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOSetOutWithVal_m

多个引脚设置为IO输出,同时设置输出电平(mask多通道执行)

语法

ErrorType IOSetOutWithVal_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t pps,
    uint32_t vals
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] pps 是否推挽输出(按位使能)
[in] vals 是否输出高电平(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOPulseOn

单个引脚脉冲输出常开(脉冲输出需先使用IOSetOut或IOSetOut_m将引脚置为输出)

语法

ErrorType IOPulseOn(
    void* DevHandle,
    uint32_t ionum,
    uint32_t freq
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] freq 脉冲频率(可选值参考JIO下拉框)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOPulseOn_m

多个引脚脉冲输出常开(mask多通道执行)(脉冲输出需先使用IOSetOut或IOSetOut_m将引脚置为输出)

语法

ErrorType IOPulseOn_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t* freqs
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] freqs 脉冲频率数组(请传入32通道的uint32_t类型的数组,并在对应位置填入需要的值)(可选值参考JIO下拉框)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOPulseOff

单个引脚脉冲输出停止

语法

ErrorType IOPulseOff(
    void* DevHandle,
    uint32_t ionum
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOPulseOff_m

多个引脚脉冲输出停止(mask多通道执行)

语法

ErrorType IOPulseOff_m(
    void* DevHandle,
    uint32_t iomask
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOPulseCnt

单个引脚输出固定脉冲数(脉冲输出需先使用IOSetOut或IOSetOut_m将引脚置为输出)

语法

ErrorType IOPulseCnt(
    void* DevHandle,
    uint32_t ionum,
    uint32_t cnt,
    uint32_t freq
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] cnt 脉冲数量
[in] freq 脉冲频率(可选值参考JIO下拉框)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOPulseCnt_m

多个引脚输出固定脉冲数(mask多通道执行)(脉冲输出需先使用IOSetOut或IOSetOut_m将引脚置为输出)

语法

ErrorType IOPulseCnt_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t* cnts,
    uint32_t* freqs
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] cnts 脉冲数量数组(请传入32通道的uint32_t类型的数组,并在对应位置填入需要的值)
[in] freqs 脉冲频率数组(请传入32通道的uint32_t类型的数组,并在对应位置填入需要的值)(可选值参考JIO下拉框)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOPulseFreq

单个引脚设置脉冲输出频率

语法

ErrorType IOPulseFreq(
    void* DevHandle,
    uint32_t ionum,
    uint32_t freq
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] freq 脉冲频率(可选值参考JIO下拉框)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOPulseFreq_m

多个引脚设置脉冲输出频率(mask多通道执行)

语法

ErrorType IOPulseFreq_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t* freqs
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] freqs 脉冲频率数组(请传入32通道的uint32_t类型的数组,并在对应位置填入需要的值)(可选值参考JIO下拉框)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetFreq

设置PWM输出频率(应用于所有PWM通道)

语法

ErrorType PWMSetFreq(
    void* DevHandle,
    uint32_t freq
    );

参数
[in] DevHandle 设备句柄
[in] freq PWM频率(可选值参考JIO下拉框)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetOut

单个引脚设置为PWM输出

语法

ErrorType PWMSetOut(
    void* DevHandle,
    uint32_t ionum
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetOut_m

多个引脚设置为PWM输出(mask多通道执行)

语法

ErrorType PWMSetOut_m(
    void* DevHandle,
    uint32_t iomask
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetOn

单个引脚开启PWM输出

语法

ErrorType PWMSetOn(
    void* DevHandle,
    uint32_t ionum
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetOn_m

多个引脚开启PWM输出(mask多通道执行)

语法

ErrorType PWMSetOn_m(
    void* DevHandle,
    uint32_t iomask
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetOff

单个引脚停止PWM输出

语法

ErrorType PWMSetOff(
    void* DevHandle,
    uint32_t ionum
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetOff_m

多个引脚停止PWM输出(mask多通道执行)

语法

ErrorType PWMSetOff_m(
    void* DevHandle,
    uint32_t iomask
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetDuty

单个引脚设置PWM占空比

语法

ErrorType PWMSetDuty(
    void* DevHandle,
    uint32_t ionum,
    uint16_t duty
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] duty PWM占空比(0~1000对应占空比0%~100%)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

PWMSetDuty_m

多个引脚设置PWM占空比(mask多通道执行)

语法

ErrorType PWMSetDuty_m(
    void* DevHandle,
    uint32_t iomask,
    uint16_t* dutys
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] dutys PWM占空比数组(请传入32通道的uint16_t类型的数组,并在对应位置填入需要的值)(0~1000对应占空比0%~100%)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

CapSetIn

设置为PWM捕获(仅通道1支持)

语法

ErrorType CapSetIn(
    void* DevHandle,
    uint32_t ionum
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

CapClearCnt

清空捕获脉冲数计数(仅通道1支持)

语法

ErrorType CapClearCnt(
    void* DevHandle,
    uint32_t ionum
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

ADCSetIn

单个引脚设置为ADC采集

语法

ErrorType ADCSetIn(
    void* DevHandle,
    uint32_t ionum,
    BOOL isdiff
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[in] isdiff 是否是差分(1,3通道支持差分)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

ADCSetIn_m

多个引脚设置为ADC采集(mask多通道执行)

语法

ErrorType ADCSetIn_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t isdiffs
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[in] isdiffs 是否是差分(按位使能)(1,3通道支持差分)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

ADCSetSamp

设置ADC采样率(应用于所有ADC通道)

语法

ErrorType ADCSetSamp(
    void* DevHandle,
    uint32_t samp
    );

参数
[in] DevHandle 设备句柄
[in] samp ADC采样率

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOGetInVal

单个引脚获取IO输入电平值

语法

ErrorType IOGetInVal(
    void* DevHandle,
    uint32_t ionum,
    BOOL* val
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[out] val 返回的电平值,0代表低电平,1代表高电平

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOGetInVal_m

多个引脚获取IO输入电平值(mask多通道执行)

语法

ErrorType IOGetInVal_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t* vals
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[out] vals 返回的电平值,(请传入单个uint32_t类型的指针)(按位判断高低电平)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOGetPulseRemain

单个引脚获取脉冲输出剩余计数

语法

ErrorType IOGetPulseRemain(
    void* DevHandle,
    uint32_t ionum,
    uint32_t* remaincnt
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[out] remaincnt 返回单个通道的剩余脉冲数(请传入单个uint32_t类型的指针)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

IOGetPulseRemain_m

多个引脚获取脉冲输出剩余计数(mask多通道执行)

语法

ErrorType IOGetPulseRemain_m(
    void* DevHandle,
    uint32_t iomask,
    uint32_t* remaincnts
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[out] remaincnts 返回多个通道的剩余脉冲数,(请传入32通道的uint32_t类型的数组,将返回对应通道的剩余脉冲数)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

CapGetVal

获取PWM捕获值(仅通道1支持)

语法

ErrorType CapGetVal(
    void* DevHandle,
    uint32_t ionum,
    uint32_t* freq,
    uint16_t* duty,
    uint32_t* pulsecnt
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[out] freq 返回捕获的频率(请传入单个uint32_t类型的指针)
[out] duty 返回捕获的占空比(请传入单个uint16_t类型的指针)
[out] pulsecnt 返回捕获的脉冲数量(请传入单个uint32_t类型的指针)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

ADCGetVal

单个引脚获取ADC采样值

语法

ErrorType ADCGetVal(
    void* DevHandle,
    uint32_t ionum,
    uint16_t* adval
    );

参数
[in] DevHandle 设备句柄
[in] ionum 单个引脚序号(从1开始)
[out] adval 返回单个通道ADC采样值(请传入单个uint16_t类型的指针)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

ADCGetVal_m

多个引脚获取ADC采样值(mask多通道执行)

语法

ErrorType ADCGetVal_m(
    void* DevHandle,
    uint32_t iomask,
    uint16_t* advals
    );

参数
[in] DevHandle 设备句柄
[in] iomask 多个引脚位号(按位使能)
[out] advals 返回多个通道ADC采样值(请传入32通道的uint16_t类型的数组,将返回对应通道的ADC采样值)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JIOReboot

重启JIO设备

语法

ErrorType JIOReboot(
    void* DevHandle
    );

参数
[in] DevHandle 设备句柄

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JIOSetVcc

设置JIOVCC输出电压

语法

ErrorType JIOSetVcc(
    void* DevHandle,
    uint8_t val
    );

参数
[in] DevHandle 设备句柄
[in] val VCC选项枚举值,不同型号支持可能不同,具体参考JIO界面下拉框(例如:0 - 5v; 1 - 3.3v; 2 - 关闭)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JIOSetVio

设置JIOVIO电平

语法

ErrorType JIOSetVio(
    void* DevHandle,
    uint8_t val
    );

参数
[in] DevHandle 设备句柄
[in] val VIO选项枚举值,不同型号支持可能不同,具体参考JIO界面下拉框(例如:0 - 3.3v; 1 - 1.8v)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JIOSetID

设置JIO设备的ID

语法

ErrorType JIOSetID(
    void* DevHandle,
    uint16_t val
    );

参数
[in] DevHandle 设备句柄
[in] val ID值(0~65535)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JIOIntoBoot

重启JIO,进入bootloader
语法

ErrorType JIOIntoBoot(
    void* DevHandle
    );

参数
[in] DevHandle 设备句柄

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

--------JI2C接口--------

I2CScan

扫描I2C从机地址

语法

ErrorType I2CScan(
    void* DevHandle,
    uint8_t* cnt,
    uint8_t* result
    );

参数
[in] DevHandle 设备句柄
[out] cnt 返回扫描到的从机地址数量
[out] result 返回扫描到的从机地址(务必传入128个uint8_t类型的数组,扫描到的地址将保存在此数组)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

I2CWrite

I2C写数据

语法

ErrorType I2CWrite(
    void* DevHandle,
    uint8_t slave_addr,
    REGADDR_TYPE reg_type,
    uint32_t reg_addr,
    uint16_t len,
    uint8_t* data
    );

参数
[in] DevHandle 设备句柄
[in] slave_addr 从机地址(8位模式)
[in] reg_type 寄存器地址类型,参考REGADDR_TYPE枚举值
[in] reg_addr 寄存器地址
[in] len 写入长度
[in] data 写入的数据数组

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

I2CRead

I2C读数据

语法

ErrorType I2CRead(
    void* DevHandle,
    uint8_t slave_addr,
    REGADDR_TYPE reg_type,
    uint32_t reg_addr,
    uint16_t len,
    uint8_t* buf
    );

参数
[in] DevHandle 设备句柄
[in] slave_addr 从机地址(8位模式)
[in] reg_type 寄存器地址类型,参考REGADDR_TYPE枚举值
[in] reg_addr 寄存器地址
[in] len 读取长度
[out] buf 读取数据存入的数组(请确数组保长度至少==len)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

I2CReadWithDelay

I2C读数据(带延时)

语法

ErrorType I2CReadWithDelay(
    void* DevHandle,
    uint8_t slave_addr,
    REGADDR_TYPE reg_type,
    uint32_t reg_addr,
    uint16_t len,
    uint8_t* buf,
    uint8_t sr_delay,
    uint8_t raddr_delay
    );

参数
[in] DevHandle 设备句柄
[in] slave_addr 从机地址(8位模式)
[in] reg_type 寄存器地址类型,参考REGADDR_TYPE枚举值
[in] reg_addr 寄存器地址
[in] len 读取长度
[out] buf 读取数据存入的数组(请确数组保长度至少==len)
[in] sr_delay 读取加延时等待(Sr重复起始条件之前)
[in] raddr_delay 读取加延时等待(发送完读地址后)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

EEWrite

EEPROM写数据

语法

ErrorType EEWrite(
    void* DevHandle,
    uint8_t base_slave_addr,
    REGADDR_TYPE reg_type,
    uint16_t page_size,
    uint32_t reg_addr,
    uint32_t len,
    uint8_t* data
    );

参数
[in] DevHandle 设备句柄
[in] base_slave_addr base从机地址(多block的EEPROM具有多个从机地址,请使用第一个)(8位模式)
[in] reg_type 寄存器地址类型,参考REGADDR_TYPE枚举值(EEPROM只能8位或16位,参考具体型号)
[in] page_size EEPROM的页大小(确保此参数正确,用于跨页处理)
[in] reg_addr 寄存器地址
[in] len 写入长度
[in] data 写入的数据数组

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

EERead

EEPROM读数据

语法

ErrorType EERead(
    void* DevHandle,
    uint8_t base_slave_addr,
    REGADDR_TYPE reg_type,
    uint32_t reg_addr,
    uint32_t len,
    uint8_t* buf
    );

参数
[in] DevHandle 设备句柄
[in] base_slave_addr base从机地址(多block的EEPROM具有多个从机地址,请使用第一个)(8位模式)
[in] reg_type 寄存器地址类型,参考REGADDR_TYPE枚举值(EEPROM只能8位或16位,参考具体型号)
[in] reg_addr 寄存器地址
[in] len 读取长度
[out] buf 读取数据存入的数组(请确数组保长度至少==len)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

I2CRegisterIntCallback

注册I2C INT引脚的中断回调函数

语法

ErrorType I2CRegisterIntCallback(
    void* DevHandle, 
    INT_TYPE inttype, 
    I2CIntCallbackFun callback)

参数
[in] DevHandle 设备句柄
[in] inttype 中断触发类型,参考INT_TYPE枚举值
[in] callback 中断回调函数指针,自定义中断函数(参数和返回值均为void),将函数名带入此参数,中断触发时将执行此函数

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

I2CCloseIntCallback

关闭I2C INT引脚的中断回调函数

语法

ErrorType I2CCloseIntCallback(void* DevHandle)

参数
[in] DevHandle 设备句柄

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JI2CReboot

重启JI2C设备

语法

ErrorType JI2CReboot(
    void* DevHandle
    );

参数
[in] DevHandle 设备句柄

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JI2CSetVcc

设置JI2CVCC输出电压

语法

ErrorType JI2CSetVcc(
    void* DevHandle,
    uint8_t val
    );

参数
[in] DevHandle 设备句柄
[in] val VCC选项枚举值,不同型号支持可能不同,具体参考JI2C界面下拉框(例如:0 - 5v; 1 - "=VIO" ; 2 - 关闭)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JI2CSetVio

设置JI2CVIO电平

语法

ErrorType JI2CSetVio(
    void* DevHandle,
    uint8_t val
    );

参数
[in] DevHandle 设备句柄
[in] val VIO选项枚举值,不同型号支持可能不同,具体参考JI2C界面下拉框(例如:0 - 3.3v; 1 - 1.8v)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JI2CSetSpeed

设置JI2C通信速率

语法

ErrorType JI2CSetSpeed(
    void* DevHandle,
    uint8_t val
    );

参数
[in] DevHandle 设备句柄
[in] val I2C速率选项枚举值,不同型号支持可能不同,具体参考JI2C界面下拉框(例如:0 - 10K; 1 - 50K)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JI2CSetID

设置JI2C设备的ID

语法

ErrorType JI2CSetID(
    void* DevHandle,
    uint16_t val
    );

参数
[in] DevHandle 设备句柄
[in] val ID值(0~65535)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JI2CIntoBoot

重启JI2C,进入bootloader
语法

ErrorType JI2CIntoBoot(
    void* DevHandle
    );

参数
[in] DevHandle 设备句柄

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

--------JSPI接口--------

SPIWriteOnly

SPI仅写数据

语法

ErrorType SPIWriteOnly(
    void* DevHandle, 
    SPICK_TYPE ck, 
    SPIFIRSTBIT_TYPE firstbit, 
    uint32_t len, 
    uint8_t* dataw)

参数
[in] DevHandle 设备句柄
[in] ck 时钟类型,参考SPICK_TYPE枚举值
[in] firstbit 位顺序(MSB,LSB),参考SPIFIRSTBIT_TYPE枚举值
[in] len 写入长度
[in] dataw 写入的数据数组

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

SPIReadOnly

SPI仅读数据

语法

ErrorType SPIReadOnly(
    void* DevHandle, 
    SPICK_TYPE ck, 
    SPIFIRSTBIT_TYPE firstbit, 
    uint32_t len, 
    uint8_t* bufr)

参数
[in] DevHandle 设备句柄
[in] ck 时钟类型,参考SPICK_TYPE枚举值
[in] firstbit 位顺序(MSB,LSB),参考SPIFIRSTBIT_TYPE枚举值
[in] len 读取长度
[out] bufr 读取数据存入的数组(请确数组保长度至少==len)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

SPIWriteRead

SPI写同时读数据

语法

ErrorType SPIWriteRead(
    void* DevHandle, 
    SPICK_TYPE ck, 
    SPIFIRSTBIT_TYPE firstbit, 
    uint32_t len, 
    uint8_t* dataw, 
    uint8_t* bufr)

参数
[in] DevHandle 设备句柄
[in] ck 时钟类型,参考SPICK_TYPE枚举值
[in] firstbit 位顺序(MSB,LSB),参考SPIFIRSTBIT_TYPE枚举值
[in] len 读写长度
[in] dataw 写入的数据数组
[out] bufr 读取数据存入的数组(请确数组保长度至少==len)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

QSPIWriteOnly

QSPI仅写数据

语法

ErrorType QSPIWriteOnly(
    void* DevHandle, 
    SPICK_TYPE ck, 
    SPIFIRSTBIT_TYPE firstbit, 
    uint32_t len, 
    uint8_t* dataw)

参数
[in] DevHandle 设备句柄
[in] ck 时钟类型,参考SPICK_TYPE枚举值
[in] firstbit 位顺序(MSB,LSB),参考SPIFIRSTBIT_TYPE枚举值
[in] len 写入长度
[in] dataw 写入的数据数组

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

QSPIReadOnly

QSPI仅读数据

语法

ErrorType QSPIReadOnly(
    void* DevHandle, 
    SPICK_TYPE ck, 
    SPIFIRSTBIT_TYPE firstbit, 
    uint32_t len, 
    uint8_t* bufr)

参数
[in] DevHandle 设备句柄
[in] ck 时钟类型,参考SPICK_TYPE枚举值
[in] firstbit 位顺序(MSB,LSB),参考SPIFIRSTBIT_TYPE枚举值
[in] len 读取长度
[out] bufr 读取数据存入的数组(请确数组保长度至少==len)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

SPIWriteWithCMD

SPI带指令(CMD、ADDR、ALT、DUMMY)写数据

语法

ErrorType SPIWriteWithCMD(
    void* DevHandle,
    SPICK_TYPE ck,
    SPIFIRSTBIT_TYPE firstbit,
    QSPI_TYPE qspitype,
    FIELDLEN_TYPE cmdtype,
    uint32_t cmd,
    FIELDLEN_TYPE addrtype,
    uint32_t addr,
    FIELDLEN_TYPE alttype,
    uint32_t alt,
    FIELDLEN_TYPE dummytype,
    uint32_t len,
    uint8_t* dataw)

参数
[in] DevHandle 设备句柄
[in] ck 时钟类型,参考SPICK_TYPE枚举值
[in] firstbit 位顺序(MSB,LSB),参考SPIFIRSTBIT_TYPE枚举值
[in] qspitype spi/qspi组合类型,参考QSPI_TYPE枚举值
[in] cmdtype cmd字节数,参考FIELDLEN_TYPE枚举值
[in] cmd cmd
[in] addrtype addr字节数,参考FIELDLEN_TYPE枚举值
[in] addr addr
[in] alttype alt字节数,参考FIELDLEN_TYPE枚举值
[in] alt alt
[in] dummytype dummy字节数,参考FIELDLEN_TYPE枚举值
[in] len 写入长度
[in] dataw 写入的数据数组

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

SPIReadWithCMD

SPI带指令(CMD、ADDR、ALT、DUMMY)读数据

语法

ErrorType SPIReadWithCMD(
    void* DevHandle,
    SPICK_TYPE ck,
    SPIFIRSTBIT_TYPE firstbit,
    QSPI_TYPE qspitype,
    FIELDLEN_TYPE cmdtype,
    uint32_t cmd,
    FIELDLEN_TYPE addrtype,
    uint32_t addr,
    FIELDLEN_TYPE alttype,
    uint32_t alt,
    FIELDLEN_TYPE dummytype,
    uint32_t len,
    uint8_t* bufr)

参数
[in] DevHandle 设备句柄
[in] ck 时钟类型,参考SPICK_TYPE枚举值
[in] firstbit 位顺序(MSB,LSB),参考SPIFIRSTBIT_TYPE枚举值
[in] qspitype spi/qspi组合类型,参考QSPI_TYPE枚举值
[in] cmdtype cmd字节数,参考FIELDLEN_TYPE枚举值
[in] cmd cmd
[in] addrtype addr字节数,参考FIELDLEN_TYPE枚举值
[in] addr addr
[in] alttype alt字节数,参考FIELDLEN_TYPE枚举值
[in] alt alt
[in] dummytype dummy字节数,参考FIELDLEN_TYPE枚举值
[in] len 读取长度
[out] bufr 读取数据存入的数组(请确数组保长度至少==len)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

SPIRegisterIntCallback

注册SPI INT引脚的中断回调函数

语法

ErrorType SPIRegisterIntCallback(
    void* DevHandle, 
    INT_TYPE inttype, 
    SPIIntCallbackFun callback)

参数
[in] DevHandle 设备句柄
[in] inttype 中断触发类型,参考INT_TYPE枚举值
[in] callback 中断回调函数指针,自定义中断函数(参数和返回值均为void),将函数名带入此参数,中断触发时将执行此函数

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

SPICloseIntCallback

关闭SPI INT引脚的中断回调函数

语法

ErrorType SPICloseIntCallback(void* DevHandle)

参数
[in] DevHandle 设备句柄

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JSPIReboot

重启JSPI设备

语法

ErrorType JSPIReboot(
    void* DevHandle
    );

参数
[in] DevHandle 设备句柄

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JSPISetVcc

设置JSPIVCC输出电压

语法

ErrorType JSPISetVcc(
    void* DevHandle,
    uint8_t val
    );

参数
[in] DevHandle 设备句柄
[in] val VCC选项枚举值,不同型号支持可能不同,具体参考JSPI界面下拉框(例如:0 - 5v; 1 - "=VIO" ; 2 - 关闭)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JSPISetVio

设置JSPIVIO电平

语法

ErrorType JSPISetVio(
    void* DevHandle,
    uint8_t val
    );

参数
[in] DevHandle 设备句柄
[in] val VIO选项枚举值,不同型号支持可能不同,具体参考JSPI界面下拉框(例如:0 - 3.3v; 1 - 1.8v)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JSPISetSpeed

设置JSPI通信速率

语法

ErrorType JSPISetSpeed(
    void* DevHandle,
    uint8_t val
    );

参数
[in] DevHandle 设备句柄
[in] val I2C速率选项枚举值,不同型号支持可能不同,具体参考JSPI界面下拉框(例如:0 - 468.75K; 1 - 937.5K)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JSPISetID

设置JSPI设备的ID

语法

ErrorType JSPISetID(
    void* DevHandle,
    uint16_t val
    );

参数
[in] DevHandle 设备句柄
[in] val ID值(0~65535)

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值

JSPIIntoBoot

重启JSPI,进入bootloader
语法

ErrorType JSPIIntoBoot(
    void* DevHandle
    );

参数
[in] DevHandle 设备句柄

返回值
如果操作成功,返回ErrNone
如果操作失败,返回错误代码参考ErrorType枚举值