chore: format code
This commit is contained in:
parent
314868325d
commit
8db8c6f4a1
2
4/main.c
2
4/main.c
|
@ -5,7 +5,7 @@
|
|||
#include "universal_decode_table.h"
|
||||
|
||||
code unsigned long SysClock = 11059200; //必须。定义系统工作时钟频率(Hz),用户必须修改成与实际工作频率(下载时选择的)一致
|
||||
struct_DS1302_RTC time,temp;
|
||||
struct_DS1302_RTC time, temp;
|
||||
unsigned char display[8];
|
||||
|
||||
void changeClock()
|
||||
|
|
16
9/main.c
16
9/main.c
|
@ -1,21 +1,21 @@
|
|||
// ultrasonic distance sensor
|
||||
#include "EXT.h"
|
||||
#include "STC15F2K60S2.H"
|
||||
#include "displayer.h"
|
||||
#include "sys.h"
|
||||
#include "universal_decode_table.h"
|
||||
#include "EXT.h"
|
||||
|
||||
code unsigned long SysClock = 11059200; //必须。定义系统工作时钟频率(Hz),用户必须修改成与实际工作频率(下载时选择的)一致
|
||||
|
||||
void showDist()
|
||||
{
|
||||
int dist=GetUltraSonic(),num[5];
|
||||
num[0]=dist/10000;
|
||||
num[1]=(dist%10000)/1000;
|
||||
num[2]=(dist%1000)/100;
|
||||
num[3]=(dist%100)/10;
|
||||
num[4]=dist%10;
|
||||
Seg7Print(num[0],num[1],num[2],num[3],num[4],0,0,0);
|
||||
int dist = GetUltraSonic(), num[5];
|
||||
num[0] = dist / 10000;
|
||||
num[1] = (dist % 10000) / 1000;
|
||||
num[2] = (dist % 1000) / 100;
|
||||
num[3] = (dist % 100) / 10;
|
||||
num[4] = dist % 10;
|
||||
Seg7Print(num[0], num[1], num[2], num[3], num[4], 0, 0, 0);
|
||||
}
|
||||
|
||||
void main()
|
||||
|
|
106
inc/DS1302.h
106
inc/DS1302.h
|
@ -1,74 +1,74 @@
|
|||
/**********************************DS1302 V1.1 说明 ************************************************************************
|
||||
DS1302模块用于控制“STC-B学习板”上DS1302芯片操作。
|
||||
DS1302提供RTC(实时时钟)和NVM(非易失存储器)功能(断电后,RTC和NVM是依靠纽扣电池BAT维持工作的)。其中:
|
||||
RTC提供:年、月、日、星期、时、分、秒功能
|
||||
NVM提供:31 Bytes非易失存储器功能(地址为:0~30)。其中,地址为30的单元被DS1302Init()函数用于检测DS1302是否掉电,用户不能使用)
|
||||
DS1302模块共提供1个驱动函数、4个应用函数:
|
||||
/**********************************DS1302 V1.1 说明 ************************************************************************
|
||||
DS1302模块用于控制“STC-B学习板”上DS1302芯片操作。
|
||||
DS1302提供RTC(实时时钟)和NVM(非易失存储器)功能(断电后,RTC和NVM是依靠纽扣电池BAT维持工作的)。其中:
|
||||
RTC提供:年、月、日、星期、时、分、秒功能
|
||||
NVM提供:31 Bytes非易失存储器功能(地址为:0~30)。其中,地址为30的单元被DS1302Init()函数用于检测DS1302是否掉电,用户不能使用)
|
||||
DS1302模块共提供1个驱动函数、4个应用函数:
|
||||
|
||||
(1) void DS1302Init(struct_DS1302_RTC time):DS1302驱动函数。使用DS1302,需用该函数初始化和驱动一次
|
||||
函数参数:结构struct_DS1302_RTC time
|
||||
如果DS1302掉电(初始化时检测RTC数据失效),则以参数time定义的时间初始化RTC
|
||||
函数返回值:无
|
||||
(1) void DS1302Init(struct_DS1302_RTC time):DS1302驱动函数。使用DS1302,需用该函数初始化和驱动一次
|
||||
函数参数:结构struct_DS1302_RTC time
|
||||
如果DS1302掉电(初始化时检测RTC数据失效),则以参数time定义的时间初始化RTC
|
||||
函数返回值:无
|
||||
|
||||
(2) struct_DS1302_RTC RTC_Read(void):读取DS1302内部实时时钟RTC内容
|
||||
函数参数:无
|
||||
函数返回值:结构struct_DS1302(见结构struct_DS1302定义)
|
||||
(2) struct_DS1302_RTC RTC_Read(void):读取DS1302内部实时时钟RTC内容
|
||||
函数参数:无
|
||||
函数返回值:结构struct_DS1302(见结构struct_DS1302定义)
|
||||
|
||||
(3) void RTC_Write(struct_DS1302_RTC time) :写DS1302内部实时时钟RTC内容
|
||||
函数参数:结构struct_DS1302 time(见结构struct_DS1302定义)
|
||||
函数返回值:无
|
||||
(3) void RTC_Write(struct_DS1302_RTC time) :写DS1302内部实时时钟RTC内容
|
||||
函数参数:结构struct_DS1302 time(见结构struct_DS1302定义)
|
||||
函数返回值:无
|
||||
|
||||
(4) unsigned char NVM_Read(unsigned char NVM_addr): 读取NVM一个指定地址内容
|
||||
函数参数:
|
||||
NVM_addr:指定非易失存储单元地址,有效值0~30(共31个单元)
|
||||
函数返回值:当函数参数正常时,返回NVM中对应单元的存储数值(1Byte)
|
||||
当函数参数错误时,返回enumDS1302_error
|
||||
(4) unsigned char NVM_Read(unsigned char NVM_addr): 读取NVM一个指定地址内容
|
||||
函数参数:
|
||||
NVM_addr:指定非易失存储单元地址,有效值0~30(共31个单元)
|
||||
函数返回值:当函数参数正常时,返回NVM中对应单元的存储数值(1Byte)
|
||||
当函数参数错误时,返回enumDS1302_error
|
||||
|
||||
(5) unsigned char NVM_Write(unsigned char NVM_addr, unsigned char NVM_data):向NVM一个指定地址写入新值
|
||||
函数参数:
|
||||
NVM_addr:指定非易失存储单元地址,有效值:0~30(共31个单元。其中,第30单元被DS1302Init()函数用于检测DS1302是否掉电,用户不能使用))
|
||||
NVM_data:待写入NVM单元的新值(1Byte)
|
||||
函数返回值:当函数参数正常时,返回enumDS1302_OK
|
||||
当函数参数错误时,返回enumDS1302_error
|
||||
(5) unsigned char NVM_Write(unsigned char NVM_addr, unsigned char NVM_data):向NVM一个指定地址写入新值
|
||||
函数参数:
|
||||
NVM_addr:指定非易失存储单元地址,有效值:0~30(共31个单元。其中,第30单元被DS1302Init()函数用于检测DS1302是否掉电,用户不能使用))
|
||||
NVM_data:待写入NVM单元的新值(1Byte)
|
||||
函数返回值:当函数参数正常时,返回enumDS1302_OK
|
||||
当函数参数错误时,返回enumDS1302_error
|
||||
|
||||
结构struct_DS1302_RTC定义:(参见DS1302Z数据手册)
|
||||
结构struct_DS1302_RTC定义:(参见DS1302Z数据手册)
|
||||
typedef struct
|
||||
{ unsigned char second; //秒(BCD码,以下均为BCD码)
|
||||
unsigned char minute; //分
|
||||
unsigned char hour; //时
|
||||
unsigned char day; //日
|
||||
unsigned char month; //月
|
||||
unsigned char week; //星期
|
||||
unsigned char year; //年
|
||||
{ unsigned char second; //秒(BCD码,以下均为BCD码)
|
||||
unsigned char minute; //分
|
||||
unsigned char hour; //时
|
||||
unsigned char day; //日
|
||||
unsigned char month; //月
|
||||
unsigned char week; //星期
|
||||
unsigned char year; //年
|
||||
} struct_DS1302_RTC;
|
||||
|
||||
关于DS1302内部非易失性存储器补充说明:
|
||||
DS1302提供的非易失性存储器为低功耗RAM结构,靠纽扣电池保持掉电后其存储内容不变。
|
||||
与M24C01区别:容量小(仅31字节),但无”写“寿命问题,且写周期很短(可忽略:即两次写操作之间无需等待);
|
||||
读、写DS1302内部NVM每一个字节均需要花费一定操作时间(数十uS);
|
||||
仅在需要时使用以上读或写函数读写需要的特定字节内容,应避免对其进行无效、大量、重复操作!
|
||||
关于DS1302内部非易失性存储器补充说明:
|
||||
DS1302提供的非易失性存储器为低功耗RAM结构,靠纽扣电池保持掉电后其存储内容不变。
|
||||
与M24C01区别:容量小(仅31字节),但无”写“寿命问题,且写周期很短(可忽略:即两次写操作之间无需等待);
|
||||
读、写DS1302内部NVM每一个字节均需要花费一定操作时间(数十uS);
|
||||
仅在需要时使用以上读或写函数读写需要的特定字节内容,应避免对其进行无效、大量、重复操作!
|
||||
|
||||
编写:徐成(电话18008400450) 2021年8月5日设计,2021年8月15日改进
|
||||
编写:徐成(电话18008400450) 2021年8月5日设计,2021年8月15日改进
|
||||
*/
|
||||
|
||||
#ifndef _DS1302_H_
|
||||
#define _DS1302_H_
|
||||
|
||||
typedef struct
|
||||
{ unsigned char second; //秒(BCD码,以下均为BCD码)
|
||||
unsigned char minute; //分
|
||||
unsigned char hour; //时
|
||||
unsigned char day; //日
|
||||
unsigned char month; //月
|
||||
unsigned char week; //星期
|
||||
unsigned char year; //年
|
||||
{ unsigned char second; //秒(BCD码,以下均为BCD码)
|
||||
unsigned char minute; //分
|
||||
unsigned char hour; //时
|
||||
unsigned char day; //日
|
||||
unsigned char month; //月
|
||||
unsigned char week; //星期
|
||||
unsigned char year; //年
|
||||
} struct_DS1302_RTC;
|
||||
|
||||
extern void DS1302Init(struct_DS1302_RTC time); //DS1302初始化
|
||||
extern struct_DS1302_RTC RTC_Read(void); //读RTC(读RTC时钟内容)
|
||||
extern void RTC_Write(struct_DS1302_RTC time); //写RTC(校对RTC时钟)
|
||||
extern unsigned char NVM_Read(unsigned char NVM_addr); //读NVM(读DS1302中的非易失存储单元内容)
|
||||
extern unsigned char NVM_Write(unsigned char NVM_addr, unsigned char NVM_data); //写NVM(写DS1302中的非易失存储单元)
|
||||
extern void DS1302Init(struct_DS1302_RTC time); //DS1302初始化
|
||||
extern struct_DS1302_RTC RTC_Read(void); //读RTC(读RTC时钟内容)
|
||||
extern void RTC_Write(struct_DS1302_RTC time); //写RTC(校对RTC时钟)
|
||||
extern unsigned char NVM_Read(unsigned char NVM_addr); //读NVM(读DS1302中的非易失存储单元内容)
|
||||
extern unsigned char NVM_Write(unsigned char NVM_addr, unsigned char NVM_data); //写NVM(写DS1302中的非易失存储单元)
|
||||
|
||||
enum DS1302name {enumDS1302_OK,enumDS1302_error};
|
||||
|
||||
|
|
84
inc/EXT.h
84
inc/EXT.h
|
@ -1,62 +1,62 @@
|
|||
/********************************** EXT V1.0 说明 ***********************************************
|
||||
/********************************** EXT V1.0 说明 ***********************************************
|
||||
|
||||
EXT模块用于控制“STC-B学习板”上扩展接口EXT上相关操作。
|
||||
EXT模块根据应用需要,在外接相应模块或部件后,可实现多种相应功能。这里提供部分应用驱动和API函数。
|
||||
EXT模块这里提供1个驱动函数和若干个应用层API函数。
|
||||
EXT模块的API函数不是同时有效的,而是根据初始化函数参数不同而分别有效。
|
||||
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()函数,以免引起功能冲突
|
||||
(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))
|
||||
(2)API函数
|
||||
(a) 电子秤。当EXTInit(char EXTfunction)使用enumEXTWeight参数时,GetWeight函数有效。
|
||||
int GetWeight(void) //获取电子秤ADC秤重数据(16bit,带符号整数。未清零、未标定。参见HX710、HX711数据手册(高16bit))
|
||||
|
||||
(b) PWM脉宽调制输出。当EXTInit(char EXTfunction)使用enumEXTPWM参数时,SetPWM函数有效。
|
||||
(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型桥式电路),灯亮度,等
|
||||
//设置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); //获取增量编码器增量值(相对上次读取后的新增量)
|
||||
(c) 旋转编码器、或增量式编码器。当EXTInit(char EXTfunction)使用enumEXTDecode参数时,GetDecode函数有效。
|
||||
int GetDecode(void); //获取增量编码器增量值(相对上次读取后的新增量)
|
||||
|
||||
(d) 超声波测距。当EXTInit(char EXTfunction)使用enumEXTUltraSonic参数时,GetUltraSonic函数有效。
|
||||
int GetUltraSonic(void); //获取超声波测距值(每秒5次测量,返回值单位:cm)
|
||||
(d) 超声波测距。当EXTInit(char EXTfunction)使用enumEXTUltraSonic参数时,GetUltraSonic函数有效。
|
||||
int GetUltraSonic(void); //获取超声波测距值(每秒5次测量,返回值单位:cm)
|
||||
|
||||
(e) RFID读卡(暂缓)
|
||||
(g) (蓝牙、串口)见串口2
|
||||
(h) (气敏、数据采集、电子尺、额温)见ADC
|
||||
编程注意事项:
|
||||
(e) RFID读卡(暂缓)
|
||||
(g) (蓝牙、串口)见串口2
|
||||
(h) (气敏、数据采集、电子尺、额温)见ADC
|
||||
编程注意事项:
|
||||
|
||||
|
||||
编写:徐成(电话18008400450) 2021年8月24日设计
|
||||
编写:徐成(电话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 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 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型桥式电路),灯亮度,等
|
||||
//设置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型桥式电路),灯亮度,等
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,49 +1,49 @@
|
|||
/********************************** FMRadio V1.1 说明 ************************************************************************
|
||||
FMRadio模块用于控制“STC-B学习板”上FM收音机操作。
|
||||
FMRadio模块模块共提供1个初始化函数、2个应用函数
|
||||
/********************************** FMRadio V1.1 说明 ************************************************************************
|
||||
FMRadio模块用于控制“STC-B学习板”上FM收音机操作。
|
||||
FMRadio模块模块共提供1个初始化函数、2个应用函数
|
||||
|
||||
(1) void FMRadioInit(struct_FMRadio FMRadio); //收音机模块初始化函数。该函数只执行一次。初始化后,以下各应用函数方可正确使用。
|
||||
函数参数:FMRadio (见结构struct_FMRadio定义)
|
||||
函数返回值:无
|
||||
(1) void FMRadioInit(struct_FMRadio FMRadio); //收音机模块初始化函数。该函数只执行一次。初始化后,以下各应用函数方可正确使用。
|
||||
函数参数:FMRadio (见结构struct_FMRadio定义)
|
||||
函数返回值:无
|
||||
|
||||
(2) void SetFMRadio(struct_FMRadio FMRadio); //设置FM收音机控制参数。
|
||||
函数参数:FMRadio (见结构struct_FMRadio定义)
|
||||
函数返回值:无
|
||||
(2) void SetFMRadio(struct_FMRadio FMRadio); //设置FM收音机控制参数。
|
||||
函数参数:FMRadio (见结构struct_FMRadio定义)
|
||||
函数返回值:无
|
||||
|
||||
(3) struct_FMRadio GetFMRadio(void); //获取当前FM收音机参数。
|
||||
函数参数:无
|
||||
函数返回值:返回FM控制模型数据(见结构struct_FMRadio定义)
|
||||
(3) struct_FMRadio GetFMRadio(void); //获取当前FM收音机参数。
|
||||
函数参数:无
|
||||
函数返回值:返回FM控制模型数据(见结构struct_FMRadio定义)
|
||||
|
||||
结构struct_FMRadio定义:
|
||||
typedef struct //FM收音机控制模型
|
||||
{ unsigned int frequency; // FM收音机收音频率 (frequency参数范围:887~1080。单位:0.1MHz,如887代表88.7MHz)。错误参数或参数与当前值无变化,将忽略
|
||||
unsigned char volume; // FM收音机音量 (volume参数范围:0~15。0为最小音量)。错误参数或参数与当前值无变化,将忽略
|
||||
unsigned char GP1; // FM指示灯1。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
unsigned char GP2; // FM指示灯2。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
unsigned char GP3; // FM指示灯3。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
结构struct_FMRadio定义:
|
||||
typedef struct //FM收音机控制模型
|
||||
{ unsigned int frequency; // FM收音机收音频率 (frequency参数范围:887~1080。单位:0.1MHz,如887代表88.7MHz)。错误参数或参数与当前值无变化,将忽略
|
||||
unsigned char volume; // FM收音机音量 (volume参数范围:0~15。0为最小音量)。错误参数或参数与当前值无变化,将忽略
|
||||
unsigned char GP1; // FM指示灯1。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
unsigned char GP2; // FM指示灯2。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
unsigned char GP3; // FM指示灯3。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
} struct_FMRadio;
|
||||
|
||||
编程注意事项:
|
||||
1,本版本暂未输出调谐、自动搜索、电台信号等控制和状态信息,因此,暂不能完成自动搜索电台等收音机功能。
|
||||
2,FM收音机借用USB转串口模块(CH340)时钟(硬件设计原因),需要连接USB接口(供电、通信)到USB主设备,CH340方有时钟产生和输出。
|
||||
故STC-B学习板的USB接口需要连接到一个USB主设备方可收音,仅USB供电时(如USB充电宝、或计算机休眠时的USB接口),FM收音机可能不工作
|
||||
编程注意事项:
|
||||
1,本版本暂未输出调谐、自动搜索、电台信号等控制和状态信息,因此,暂不能完成自动搜索电台等收音机功能。
|
||||
2,FM收音机借用USB转串口模块(CH340)时钟(硬件设计原因),需要连接USB接口(供电、通信)到USB主设备,CH340方有时钟产生和输出。
|
||||
故STC-B学习板的USB接口需要连接到一个USB主设备方可收音,仅USB供电时(如USB充电宝、或计算机休眠时的USB接口),FM收音机可能不工作
|
||||
|
||||
编写:徐成(电话18008400450) 2021年8月10日设计,2021年8月16日改进
|
||||
编写:徐成(电话18008400450) 2021年8月10日设计,2021年8月16日改进
|
||||
*/
|
||||
|
||||
#ifndef _FM_Radio_H_
|
||||
#define _FM_Radio_H_
|
||||
|
||||
typedef struct //FM收音机控制模型
|
||||
{ unsigned int frequency; // FM收音机收音频率 (frequency参数范围:887~1080。单位:0.1MHz,如887代表88.7MHz)。错误参数或参数与当前值无变化,将忽略
|
||||
unsigned char volume; // FM收音机音量 (volume参数范围:0~15。0为最小音量)。错误参数或参数与当前值无变化,将忽略
|
||||
unsigned char GP1; // FM指示灯1。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
unsigned char GP2; // FM指示灯2。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
unsigned char GP3; // FM指示灯3。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
typedef struct //FM收音机控制模型
|
||||
{ unsigned int frequency; // FM收音机收音频率 (frequency参数范围:887~1080。单位:0.1MHz,如887代表88.7MHz)。错误参数或参数与当前值无变化,将忽略
|
||||
unsigned char volume; // FM收音机音量 (volume参数范围:0~15。0为最小音量)。错误参数或参数与当前值无变化,将忽略
|
||||
unsigned char GP1; // FM指示灯1。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
unsigned char GP2; // FM指示灯2。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
unsigned char GP3; // FM指示灯3。 =0 输出低,GP1亮; !=0 输出高,GP1灭
|
||||
} struct_FMRadio;
|
||||
|
||||
extern void FMRadioInit(struct_FMRadio FMRadio); //收音机模块初始化函数。输入FM控制模型数据,无返回值。初始化后,以下各应用函数方可正确使用
|
||||
extern void SetFMRadio(struct_FMRadio FMRadio); //设置FM收音机控制参数。输入FM控制模型数据,无返回值。
|
||||
extern struct_FMRadio GetFMRadio(void); //获取当前FM收音机参数。无输入参数,返回FM控制模型数据
|
||||
extern void FMRadioInit(struct_FMRadio FMRadio); //收音机模块初始化函数。输入FM控制模型数据,无返回值。初始化后,以下各应用函数方可正确使用
|
||||
extern void SetFMRadio(struct_FMRadio FMRadio); //设置FM收音机控制参数。输入FM控制模型数据,无返回值。
|
||||
extern struct_FMRadio GetFMRadio(void); //获取当前FM收音机参数。无输入参数,返回FM控制模型数据
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue