⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uartcsh.c

📁 uart 参考程序 很有实用价值
💻 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 + -