64 lines
4.1 KiB
C
64 lines
4.1 KiB
C
/********************************** EXT V1.0 说明 ***********************************************
|
||
|
||
EXT模块用于控制“STC-B学习板”上扩展接口EXT上相关操作。
|
||
EXT模块根据应用需要,在外接相应模块或部件后,可实现多种相应功能。这里提供部分应用驱动和API函数。
|
||
EXT模块这里提供1个驱动函数和若干个应用层API函数。
|
||
EXT模块的API函数不是同时有效的,而是根据初始化函数参数不同而分别有效。
|
||
|
||
(1) void EXTInit(char EXTfunction):EXT初始化函数。
|
||
函数参数:EXTfunction。定义EXT接口功能
|
||
EXTfunction 取值:enumEXTWeight(秤重:由HX710、HX711组成的电子秤)
|
||
enumEXTPWM (脉宽调制:可用于控制直流电机正反转、速度,灯亮度等)
|
||
enumEXTDecode(增量式计数)
|
||
enumEXTUltraSonic (超声波测距)
|
||
函数返回值:无
|
||
注意:当EXT扩展接口用于串口2时(TTL Uart,可用于串行通信、蓝牙模块连接等),在使用Uart2Init()函数初始化EXT后,不要再使用EXTInit()函数,以免引起功能冲突
|
||
|
||
(2)API函数
|
||
(a) 电子秤。当EXTInit(char EXTfunction)使用enumEXTWeight参数时,GetWeight函数有效。
|
||
int GetWeight(void) //获取电子秤ADC秤重数据(16bit,带符号整数。未清零、未标定。参见HX710、HX711数据手册(高16bit))
|
||
|
||
(b) PWM脉宽调制输出。当EXTInit(char EXTfunction)使用enumEXTPWM参数时,SetPWM函数有效。
|
||
void SetPWM(unsigned char PWM1, unsigned char freq1, unsigned char PWM2, unsigned char freq2);
|
||
//设置EXT上输出PWM(参数PWM为占空比(输出高电平时间的比例):0~100,单位%)。freqx为频率:1~255Hz)
|
||
//实际频率 = 1000/int(1000/freqx)。即:1000/i=4,5,6...1000,或250,200,167,143,125,111,100,91,83...1
|
||
//可用于控制直流电机正反转、转速(配合H型桥式电路),灯亮度,等
|
||
|
||
(c) 旋转编码器、或增量式编码器。当EXTInit(char EXTfunction)使用enumEXTDecode参数时,GetDecode函数有效。
|
||
int GetDecode(void); //获取增量编码器增量值(相对上次读取后的新增量)
|
||
|
||
(d) 超声波测距。当EXTInit(char EXTfunction)使用enumEXTUltraSonic参数时,GetUltraSonic函数有效。
|
||
int GetUltraSonic(void); //获取超声波测距值(每秒5次测量,返回值单位:cm)
|
||
|
||
(e) RFID读卡(暂缓)
|
||
(g) (蓝牙、串口)见串口2
|
||
(h) (气敏、数据采集、电子尺、额温)见ADC
|
||
编程注意事项:
|
||
|
||
|
||
编写:徐成(电话18008400450) 2021年8月24日设计
|
||
*/
|
||
|
||
#ifndef _EXT_H_
|
||
#define _EXT_H_
|
||
|
||
extern void EXTInit(char EXTfunction); //扩展接口初始化
|
||
enum EXTname {enumEXTWeight //电子秤
|
||
,enumEXTPWM //PWM,控制直流电机转动方向、快慢
|
||
,enumEXTDecode //增量式计数(旋转编码器)
|
||
,enumEXTUltraSonic //超声波测距
|
||
//串口2,蓝牙:见uart2模块
|
||
//气敏、数据采集、电子尺、额温枪等:见ADC
|
||
};
|
||
extern int GetWeight(void); //获取电子秤ADC秤重数据(HX710、HX711输出高16bit,带符号数整数。未清零、未标定)
|
||
extern int GetDecode(void); //获取增量编码器增量值(相对上次读取后的新增量)
|
||
extern int GetUltraSonic(void); //获取超声波测距值(每秒5次测量,返回值单位:cm)
|
||
extern void SetPWM(unsigned char PWM1, unsigned char freq1, unsigned char PWM2, unsigned char freq2);
|
||
//设置EXT上输出PWM(参数PWM为占空比(输出高电平时间的比例):0~100,单位%)。freqx为频率:1~255Hz)
|
||
//实际频率 = 1000/int(1000/freqx)。即:1000/i=4,5,6...1000,或250,200,167,143,125,111,100,91,83...1
|
||
//可用于控制直流电机正反转、转速(配合H型桥式电路),灯亮度,等
|
||
|
||
|
||
|
||
|
||
#endif |