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

📄 main.c

📁 周立功2103开发板CD资料
💻 C
字号:
#define IN_MAIN
#include "config.h"
#include "SSP.h"
#include "SPI.h"
#include "UART.h"
#include "Enhance_GPIO.h"
#include "ISR.h"
#pragma import(__use_no_semihosting_swi)        //don't delete this line

//定义SSP配置值
#define		SSP_Type		0			//SPI通信格式
#define		SSP_MODE		0			//从机
#define		SSP_Fssp		0			//从机不关心通信速率
#define		SSP_Int_En		4			//接收4帧数据时产生中断
//定义SPI配置值
#define		SPI_MODE		1			//主机
#define		SPI_Fspi		100000		//通信速率100K
#define		SPI_INT_En		0			//中断禁止
//定义UART配置值
#define		UARTn_n			0			//UART0
#define		UARTn_baud		115200		//通信波特率为115200
#define		UARTn_datab		8			//8位数据位
#define		UARTn_stopb		1			//1位停止位
#define		UARTn_parity	0			//无奇偶校验位
#define		UARTn_Int_En	0			//中断禁止

#define		SPI_CS			(1<<7)		//P0.7作为片选端口
uint8	RcvNew = 0;
/*********************************************************************************************************
** Function name:	IRQ_Exception
**
** Descriptions:	interrupt exceptional handler , change it as needed
** 					don't delete this function 
********************************************************************************************************/
void  IRQ_Exception(void)
{
}
/*********************************************************************************************************
** 函数名称:DelayNS()
** 函数功能:长软件延时
** 入口参数:dly	延时参数,值越大,延时越久
** 出口参数:无
********************************************************************************************************/
void  DelayNS(uint32 dly)
{
	uint32  i;
	for(; dly>0; dly--) 
		for(i=0; i<50000; i++);
}
/*********************************************************************************************************
** 函数名称:IRQ_SSP()
** 函数功能:SSP中断服务程序。
** 入口参数:无
** 出口参数:无
********************************************************************************************************/
void  IRQ_SSP(void)
{
	uint8  tmp;
	RcvNew = 1;
	for(tmp = 0;tmp < 8;tmp++)
	{
		UARTn_SendByte(UARTn_n,SSPDR);	//将接收到的数据发送到PC机上	
	}
	SSPICR = 0x02;		//清除超时中断
	VICVectAddr = 0x00;
}
/*********************************************************************************************************
** 函数名称:Main()
** 函数功能:SSP作为SPI从机实验。主机为SPI接口,从机为SSP接口。主要检验SSP的FIFO。
**			 SPI接口发送‘1 2 3 4 5 6 7 8...’,并将SSP接收到的数据通过UART0发送到PC机上。
** 说明:P0.14连接P0.4、P0.19连接P0.5、P0.20连接P0.6、P0.21连接P0.7。
********************************************************************************************************/
void  Main(void)
{
	uint8  i = 1;
    TargetInit(VPBDIV_DATA, PLLCFG_DATA, MAMTIM_DATA);      // don't delete
    while((PLLSTAT & (1 << 10)) == 0);                      // can delete
    
	PINSEL0 = 0x00000000;		
	PINSEL1 = 0x00000000;
	SSP_Init(SSP_Type,SSP_MODE,SSP_Fssp,SSP_Int_En);		//SSP初始化为从机
   	SPI_Init(SPI_MODE,SPI_Fspi,SPI_INT_En);					//SPI初始化为主机
   	//初始化UART
    UARTn_Init(UARTn_n,UARTn_baud,UARTn_datab,UARTn_stopb,UARTn_parity,UARTn_Int_En);
	P0_GPIOInit(SPI_CS,1);					//SPI_CS初始化位GPIO输出模式    
	P0_GPIOSet(SPI_CS);
	
	SetISR(SSP_INT,0, (uint32)IRQ_SSP);		//设置SSP的IRQ中断
	IRQEnable();						 
    while(1)
    {
   		for(;RcvNew == 0;i++)				//发送数据,直到RcvNew = 1为止
   		{
    		P0_GPIOClr(SPI_CS);
    		SPI_SendByte(i); 
   			P0_GPIOSet(SPI_CS);    			
   		}   			
    		RcvNew = 0;
    		DelayNS(500);					//延时一段时间
    }
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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