eecs-bsp-test-code-2/inc/EXT.h

64 lines
4.1 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/********************************** 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为占空比输出高电平时间的比例0100,单位%。freqx为频率1255Hz
//实际频率 = 1000/int(1000/freqx)。即1000/i=456...1000或2502001671431251111009183...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为占空比输出高电平时间的比例0100,单位%。freqx为频率1255Hz
//实际频率 = 1000/int(1000/freqx)。即1000/i=456...1000或2502001671431251111009183...1
//可用于控制直流电机正反转、转速配合H型桥式电路灯亮度
#endif