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

📄 main.c

📁 力天电子 dsp源码
💻 C
字号:
/******************************************************************/
/*Copyright (C), 2008-2009, 力天电子,LiTian Tech.Co.Ltd.		  */
/*  Module Name   : SCIB	       							  	  */
/*  File Name     : main.c	   									  */        
/*  Author   	  : 侯长波                                        */     
/*  Create Date   : 2009/12/27                                    */      
/*  Version   	  : 2.0                                           */          
/*  Function      : 串口SCIB数据的接收、发送				      */                       
/*  Description   : 								              */            
/*  Support       : www.LT430.com 				                  */             
/******************************************************************/

/*****************头文件********************/  
#include "DSP281x_Device.h"
#include "System.h"

/****************端口宏定义*****************/

/****************常量宏定义*****************/ 

/***************全局变量定义****************/
unsigned char SCIB_RX_BUF[16]={0};//接收数据存储区
unsigned char SCIB_TX_BUF[16]={1,2,3,4,5,6,7,8,0};//发送数据存储区 
unsigned char N=0; 

/****************函数声明*******************/ 
void Init_SCIB(void);
void Send_Char_SCIA(char temp);
void Send_Char_SCIB(char temp);    
void Send_String_SCIB(char *String);
char Get_Char_SCIB(void); 
interrupt void SCIB_RXINT(void); 

/*------------------------------------------*/
/*形式参数:void                            */
/*返回值:void				                */
/*函数描述:主函数			                */
/*------------------------------------------*/ 
void main(void)
{
	InitSysCtrl();  // 系统初始化子程序,在DSP28_sysctrl.c中
	Init_SCIB();
	Send_String_SCIB("Welcome to LiTian!");
	while(1);   
} 

/*------------------------------------------*/
/*形式参数:void                            */
/*返回值:void				                */
/*函数描述:配置SCIB							*/
/*------------------------------------------*/ 
void Init_SCIB(void)
{
	EALLOW;		 
    GpioMuxRegs.GPGMUX.bit.SCITXDB_GPIOG4 = 1; //配置  SCIB-RX
    GpioMuxRegs.GPGMUX.bit.SCIRXDB_GPIOG5 = 1; //配置  SCIB-TX  		
    EDIS;
	ScibRegs.SCICTL1.all =0x0003;  	// 使能 TX, RX, 内部 SCICLK, 
                                   	// 禁止 RX ERR, SLEEP, TXWAKE
	ScibRegs.SCICCR.all =0x0007;   	// 1bit 停止位 无循环模式 
                                   	// 无极性,  字符长度:8 bits
                                   	// 异步模式,空闲线协议
	ScibRegs.SCIHBAUD = 0x0001;  	// 波特率:9600(LSPCLK = 37.5MHz); 
	ScibRegs.SCILBAUD = 0x0085;
	ScibRegs.SCICTL2.bit.RXBKINTENA = 1;// 使能SCI接收中断 	 
	ScibRegs.SCICTL1.all =0x0023;	    // 使SCI退出复位 
	EALLOW;	// 解除寄存器保护
	PieVectTable.RXBINT = &SCIB_RXINT;//用SCIB中断函数入口更新PIE向量表
	EDIS;   // 使能寄存器保护
    PieCtrlRegs.PIEIER9.bit.INTx3 = 1;//使能PIE内的 SCIB_RX_INT中断 
    IER |= M_INT9; // 使能 CPU INT 9	    
   	EINT;        // 全局中断使能INTM  
}  
/*------------------------------------------*/
/*形式参数:char                            */
/*返回值:void				                */
/*函数描述:发送一个字符						*/
/*------------------------------------------*/ 
void Send_Char_SCIB(char temp)
{
 	ScibRegs.SCITXBUF=temp;
	while ( ScibRegs.SCICTL2.bit.TXRDY == 0);//状态检测模式
 	while ( ScibRegs.SCICTL2.bit.TXEMPTY == 0);//状态检测,等待发送标识为空 
}
/*------------------------------------------*/
/*形式参数: char *String                   */
/*返回值:void				                */
/*函数描述:发送一个字符串					*/
/*------------------------------------------*/ 
void Send_String_SCIB(char *String)
{
	while(*String !='\0')
  	{
    Send_Char_SCIB(*String++);
  	}
}
/*------------------------------------------*/
/*形式参数:void                            */
/*返回值:char				                */
/*函数描述:接收一个字符						*/
/*------------------------------------------*/ 
char Get_Char_SCIB(void)
{	
	DINT;//关闭总中断
	while(ScibRegs.SCIRXST.bit.RXRDY != 1);//等待接收完毕
	EINT;   //开总中断
 	return (ScibRegs.SCIRXBUF.all);    // 返回接收到的数据	
}
/*------------------------------------------*/
/*形式参数:void                            */
/*返回值:void				                */
/*函数描述:SCIB中断处理函数					*/
/*------------------------------------------*/ 
interrupt void SCIB_RXINT(void)
{
 	DINT;//关闭总中断
   	SCIB_RX_BUF[N++]=ScibRegs.SCIRXBUF.bit.RXDT;
    PieCtrlRegs.PIEACK.all |= BIT9;   //响应中断
	EINT;   //开总中断
} 



 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -