📄 uartcsh.c
字号:
//UART初始化函数
#include "SPCE061A.h"
#include "DVR.h"
//#define IRQ_ON() asm("irq on")
#define Manual 0
#define atuo 1
#define RceMonitorOff 0
#define RceMonitorOn 1
#define DAC1 1
#define DAC2 2
#define Full 1
#define Empty 2
//#define Status 0
#define STATUS_RECORD 1
#define STATUS_STOP 3
void InitialUART()
{
asm(".include SPCE061A.inc");
//_asm("int off");
*P_IOB_Dir=0x0400; //设置IOB10是输出即发送,IOB7是输入即接收
*P_IOB_Attrib=0x0480;//IOB10是同相输出,IOB7是悬浮式的输入
*P_UART_BaudScalarLow=0x006B;//设置UART波特率为115200,写入波特率低字节寄存器
*P_UART_BaudScalarHigh=0x0000;//设置波特率高字节寄存器
*P_UART_Command1=0x80; //设置UART工作模式
*P_UART_Command2=0xC0; //把UART设置为以中断方式接收数据,同时以查询方式发送数据
asm("irq on");
}
//SPCE061A主程序UART
void TransmitData();
int main()
{
int Ret,Working= 1;
char key,Status;
//STATUS_STOP;
// char STATUS_RECORD;
InitialUART();//初始化uart
while (Working)
{
*P_Watchdog_Clear=0x01;
//key=[P_Key_Data];//从全局变量P_Key_Data中取得当前的控制命令
switch(key)
{
case 'R':
{
if(Status != STATUS_RECORD)
{ //开始录音
Status = STATUS_RECORD;
SACM_DVR_Initial(Manual); //设置手动录音方式
SACM_DVR_InitQueue();
//SACM_DVR_InitEncoder(RceMonitorOn);// 初始化子带编码
SACM_DVR_InitEncoder(0,0);
}
else
{
SACM_DVR_Encode();//开始自动方式录音,获取数据并编码
if(SACM_DVR_TestQueue()!= Empty)
{
Ret=SACM_DVR_FetchQueue();//获取录音编码(SACM_A2000)编码数据
TransmitData(&Ret);//向上位机传送数据
}
}
break;
}
case 'S':
Status = STATUS_STOP;
SACM_DVR_StopEncoder();//停止录音
break;
case 'X':
Status = STATUS_STOP;
SACM_DVR_StopEncoder();
Working = 0;//结束应用程序
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -