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

📄 main.c

📁 周立功2103开发板CD资料
💻 C
字号:
#define IN_MAIN
#include "config.h"
#include "SSP.h"
#include "SPI.h"
#include "UART.h"
#include "Legacy_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	2		//超时中断使能
//定义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作为片选端口

/*********************************************************************************************************
** 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)
{
	SSPICR = 0x02;		//清除超时中断
	UARTn_SendByte(UARTn_n,SSPDR);	//将接收到的数据发送到PC机上	
	VICVectAddr = 0x00;
}
/*********************************************************************************************************
** 函数名称:Main()
** 函数功能:SSP作为SPI从机实验。主机为SPI接口,从机为SSP接口。
**			 SPI接口循环发送数据'0'~'9',SSP收到数据后,再将收到的数据通过UART0发送到PC机上。
** 说明:P0.14连接P0.4、P0.19连接P0.5、P0.20连接P0.6、P0.21连接P0.7。
********************************************************************************************************/
void  Main(void)
{
	uint8  i;
    TargetInit(VPBDIV_DATA, PLLCFG_DATA, MAMTIM_DATA);      // don't delete
    while((PLLSTAT & (1 << 10)) == 0);                      // can delete
    
	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);
	SetISR(SSP_INT,0, (uint32)IRQ_SSP);	//设置SSP的IRQ中断
	IRQEnable();
 	P0_GPIOInit(SPI_CS,1);			 	//SPI_CS初始化位GPIO输出模式   
    while(1)
	{
		for(i = 0;i < 10;i++)
		{
			P0_GPIOClr(SPI_CS);
			SPI_SendByte(i + '0');
			P0_GPIOSet(SPI_CS);
			DelayNS(50);
		} 	
	}
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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