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从机地址 |
I2CWrite | I2C写数据 |
I2CRead | I2C读数据 |
I2CReadWithDelay | I2C读数据(带延时) |
EEWrite | EEPROM写数据 |
EERead | EEPROM读数据 |
I2CRegisterIntCallback | 注册中断回调函数 |
I2CCloseIntCallback | 关闭中断回调函数 |
JI2CReboot | 重启JI2C设备 |
JI2CSetVcc | 设置JI2C VCC输出电压 |
JI2CSetVio | 设置JI2C VIO电平 |
JI2CSetSpeed | 设置JI2C通信速率 |
JI2CSetID | 设置JI2C设备的ID |
JI2CIntoBoot | 重启JI2C,进入bootloader |
JTool-SPI API接口
接口名 | 概述 |
---|---|
SPIWriteOnly | SPI仅写数据 |
SPIReadOnly | SPI仅读数据 |
SPIWriteRead | SPI写同时读数据 |
QSPIWriteOnly | QSPI仅写数据 |
QSPIReadOnly | QSPI仅读数据 |
SPIWriteWithCMD | SPI带指令(CMD、ADDR、ALT、DUMMY)写数据 |
SPIReadWithCMD | SPI带指令(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枚举值