📄 comm.h
字号:
/*****************************************************************************/
/* COMM.H v1.00 */
/* 版权(c) 2003- 北京合众达电子技术有限责任公司 */
/* 设计者: 段立锋 */
/*****************************************************************************/
#ifndef _COMM_H_
#define _COMM_H_
/********************************************************************************/
/* 常量定义 */
/********************************************************************************/
#define FRAMLONGTH 0x104
#define DataLongth 0x100
/*帧类型的设定*/
#define UARTDATA 0x0
#define UARTCOMMAND 0x2
/*命令帧的参数设定*/
#define TESTDATACONT 0x01
#define TESTDATAEND 0x00
/*系统命令*/
#define UARTCONT 0x0 //命令帧不连续
#define UARTMUTL 0x1 //帧连续
#define RECIEVEGOOD 0xAA01//接收正确
#define RECIEVEERROR 0xAA02//接收错误
#define RECIEVEEND 0xAA03//接收结束
#define VAILDFRAME 0xAA04//无效帧
#define SYSRESET 0xAA05//系统复位
#define SYSTEMRESET 0x05//系统复位
#define COMMANDNODO 0xAA06//程序不处理命令
#define INITOVER 0xAA0F//初始化完成
/*音频实验*/
#define AUDIOCOPY 0xAA07//音频存贮开始
#define AUDIOPLAY 0xAA08//音频回放
#define AUDIOGAIN 0xAA09//音频增益调整
#define AUDIOTRY 0xAA0A//音频试听
#define FLASHERROR 0xAA0B//FLash无法擦除
#define FLASHWERR 0xAA0C//Flash无法写入
#define FLASHWOK 0xAA0D//FLASH写入成功
#define FLASHWEND 0xAA0E//录音结束
#define AUDIOSAMPLE 0xAA10//CODEC采样调整
#define AUDIOINPUT 0xAA11//CODEC输入选择
/*定时器实验*/
#define TIMERESET 0xA5
#define TIMESET 0xA2//设置时间
#define TIMEBACK 0xA3//返回时间
typedef struct Time_Frame
{
unsigned int Type; //帧类型
unsigned int Hour; //小时
unsigned int Minute; //分钟
unsigned int Second; //秒
}Time_Frame;
/*交通灯实验*/
#define TRAFFICAUTO 0xAA14//自动运行模式
#define TRAFFICMANNUL 0xAA15//人工模式
#define TRAFFICNIGHT 0xAA16//夜间模式
#define TRAFFICRUN 0xAA17//运行状态
#define TRAFFICHALT 0xAA18//停止状态
#define TRAFFICRESET 0xAA19//交通灯复位
#define TRAFFICEAST 0xAA1A//东西通行
#define TRAFFICSOUTH 0xAA1B//南北通行
#define TRAFFICFORBID 0xAA1C//禁行
#define IOSET 0xAA1D//设置IO值
#define IOBACK 0xAA1E//返回IO值
/*同步串口实验*/
#define MCBSPOPEN 0xAA1F//打开同步串口
#define MCBSPCLOSE 0xAA20//关闭同步串口
//#define MCBSPCIRCLE 0xAA21//循环发送
/*异步串口实验*/
#define UARTSINGLE 0xAA22 //单个发送与接收
#define UARTFRAME 0xAA23 //采用帧模式发送与接收
#define UARTSNGL2FRM 0x5A //退出单个发送模式
/*电机驱动实验*/
#define STPMTRHALT 0xAA24//步进电机停止
#define STPMTRRUN 0xAA25//步进电机运行
#define STPMTRRVS 0xAA26//步进电机反向
#define DCMTRRUN 0xAA28//直流电机运行
#define DCMTRBRK 0xAA39//直流电机刹车
#define DCMTRSLWDWN 0xAA3A//直流电机缓停
#define DCMTRRVS 0xAA3B//直流电机反向
#define MTRCONFIG 0xAA3C//电机设置
#define MOTORSTART 0xBB05// 电机试验开始
#define MOTOREND 0xBB06// 电机试验结束
/*spi试验命令*/
#define SPISENDDATA 0xCC03 //spi 发送数据
#define SPIEND 0xCC04 //spi 试验结束
/*CAN试验命令*/
#define CANSENDDATA 0xCC05 //CAN 发送数据
#define CANEND 0xCC06 //CAN 试验结束
typedef struct MotorConfig
{
unsigned int StpMode; //步进电机模式
unsigned int StpDir; //步进电机方向
unsigned int StpHlfStp; //步进电机半步
unsigned int StpSpdDgr; //步进电机速度、步数
unsigned int DcDir; //直流电机方向
unsigned int DcSpd; //直流电机速度
}MotorConfig, *PMotorConfig;
//步进电机半步
#define FULLSTEP 0x0
#define HALFSTEP 0x1
//电机方向常量
#define CLOCKWISE 0x0
#define ANTICLOCKWISE 0x1
//步进电机模式常量
#define ROTATE 0x0
#define LOCATE 0x1
/*AD实验*/
#define ADSTART 0xAA40//启动AD采样
#define ADSET 0xAA41//AD设置
#define ADDATASEND 0xAA43//AD数据传送
#define ADOVER 0xAA42//AD数据采样结束
//#define ADGAIN 0xAA44//AD前向增益调整
typedef struct _AdConfig
{
unsigned int SampleLong; //AD采样数据长度
unsigned int SampleRate; //AD采样率
unsigned int GainSet; //AD前向增益调整
unsigned int DataLeft; //选择左通路数据还是右通路
}AdConfig, *PAdConfig;
//AD益调整
#define GAINLOWEST 0x0 //代表-34.5DB,每增加一,增加1.5DB
#define GAINHIGH 0x1f //代表12DB
//AD采样率调整
#define ADSAMPL8K 0xd //采样率为8k
#define ADSAMPL44K 0x23 //采样率为44k
#define ADSAMPL96K 0x1d //采样率为96k
//AD数据选择
#define ADDATALEFT 0x0
#define ADDATARIGHT 0x1
/*FFT实验*/
#define FFTSTART 0xAA44
#define FFTSET 0xAA45
#define FFTDATASEND 0xAA46
#define FFTOVER 0xAA47
/*FFT数据长度*/
#define DATALENGTH256 256
#define DATALENGTH512 512
#define DATALENGTH1024 1024
/*滤波器实验*/
#define FILTERSTART 0xAA48
#define FILTERSET 0xAA49
#define FILTERDATASEND 0xAA4A
#define FILTEROVER 0xAA4B
//系统引导初始化成功
#define BOOTINITOVER 0xAA4C
typedef struct _FilterConfig
{
unsigned int SampleLong; //AD采样数据长度
unsigned int SampleRate; //AD采样率
unsigned int GainSet; //AD前向增益调整
unsigned int DataLeft; //选择左通路数据还是右通路
unsigned int FilterType; //滤波器类型
}FilterConfig, *PFilterConfig;
/*滤波器类型*/
#define FIRFILTER 0x0
#define IIRFILTER 0x1
/*ADD BY SHGENG*/
#define COMMWITHDEC5416 0xCC00//通讯方向选择dec5416
#define COMMWITHDSK2407 0xCC01//通讯方向选择dsk2407
//add by shgeng
/*系统缓冲区的定义:
*系统缓冲区的定义:
*第0~3个字节:串口通路A的寄存器缓冲
*第4个字节:5个字节:串口通路B的寄存器缓冲
*第6~7个字节:系统寄存器的读写缓冲
*第8个字节 :A通路接收缓冲区每次接收的长度
*第9个字节 :B通路接收缓冲区第次接收的长度
*第10个字节 :A通路当前接收缓冲区的地址
*第11个字节 :B通路当前接收缓冲区的地址
*第12个字节 :A通路的FIFO的深度
*第13个字节 : B通路的FIFO的深度
*第14个字节 :UART的状态区
*第15个字节 :A通路数据准备好
*第16个字节 :B通路数据准备好
*第17个字节 :A通路出现故障
*第18个字节 :B通路出现故障
*第19个字节 : A通路已接收的数据
*第20个字节 : B通路已接收的数据
*第21个字节 :A通路有新帧
*第22个字节 :B通路有新帧
*第23个字节 :A通路中断超时
*第24个字节 :B通路中断超时
*第25个字节 :A通路较验出错
*第26个字节 :B通路较给出错
*第27个字节 :系统的时钟设置
*/
#define UARTA0 0x0
#define UARTA1 0x1
#define UARTA2 0x2
#define UARTA3 0x3
#define UARTB1 0x4
#define UARTB2 0x5
#define SYSB0 0x6
#define SYSB1 0x7
#define RECALON 0x8
#define RECBLON 0x9
#define RECAADDR 0xA
#define RECBADDR 0xB
#define FIFOADIP 0xC
#define FIFOBDIP 0xD
#define UARTSTAT 0xE
#define RECARDY 0xf
#define RECBRDY 0x10
#define UARTAERR 0x11
#define UARTBERR 0x12
#define UARTACOUNT 0x13
#define UARTBCOUNT 0x14
#define RECANEW 0x15
#define RECBNEW 0x16
#define UARTIMEA 0x17
#define UARTIMEB 0x18
#define UARTCHEKA 0x19
#define UARTCHEKB 0x1a
#define SYSCLOCKS 0x1b
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -