?? spi_rec.c
字號:
/****************************************************************************
* 文件名:SPI_rec.C
* 功能:使用硬件SPI接口接收從NUT來的數據。(此ARM設置為從機模式)
****************************************************************************/
#include "config.h"
#define UART_BPS 115200 /* 定義串口通訊波特率 */
uint8 i;
uint8 Data;
uint8 rcv_data[256]={0};
void variable_init(void);
void __irq Spi0_Interrupt(void);
void Spi0_Init(void);
/****************************************************************************
* 名稱:UART0_Ini()
* 功能:初始化串口1。設置為8位數據位,1位停止位,無奇偶校驗,波特率為9600
* 入口參數:無
* 出口參數:無
****************************************************************************/
void UART0_Ini(void)
{ uint16 Fdiv;
U0LCR = 0x83; // DLAB = 1,可設置波特率
Fdiv = (Fpclk / 16) / UART_BPS; // 設置波特率
U0DLM = Fdiv / 256;
U0DLL = Fdiv % 256;
U0LCR = 0x03; //8位數據位,1位停止位,無奇偶校驗
}
/****************************************************************************
* 名稱:UART0_SendByte()
* 功能:向串口發送字節數據,并等待發送完畢。
* 入口參數:data 要發送的數據
* 出口參數:無
****************************************************************************/
void UART0_SendByte(uint8 data)
{
U0THR = data; // 發送數據
while( (U0LSR&0x40)==0 ); // 等待數據發送完畢
}
void variable_init(void)
{
i = 0;
Data = 0;
}
void __irq Spi0_Interrupt(void)
{
Data = S0PSR;
rcv_data[i++] = S0PDR;
//UART0_SendByte(rcv_data[i-1]);
if(i==256) i=0;
S0PINT = 0x01;
VICVectAddr = 0x00; // 通知VIC中斷處理結束
}
/****************************************************************************
* 名 稱:Spi0_Init()
* 功 能:初始化Spi0。
****************************************************************************/
void Spi0_Init(void)
{
S0PCR = 0x98;
/*設置Spi0中斷IRQ*/
VICIntSelect = 0x00000000;
VICVectCntl0 = 0x0000002A;
VICVectAddr0 = (uint32)Spi0_Interrupt;
VICIntEnable = 0x00000400;
}
/****************************************************************************
* 名稱:main()
* 功能:使用硬件SPI接口接收數據。并從UART1口將接收到的數據發送出去
****************************************************************************/
int main(void)
{
PINSEL0 = 0x00005505; // 設置SPI管腳連接和 UART0 管腳連接
PINSEL1 = 0x00000000;
variable_init();
Spi0_Init(); // 初始化SPI中斷
UART0_Ini();
while(1);
return(0);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -