📄 main.c
字号:
/*****************************************************/
/* EasyLPC2103 Study Broad + ENC28J60 Module */
/* http://www.OurEDA.cn */
/*****************************************************/
/* EasyLPC2103 broad <<-->> ENC28J60 Module */
/* P0.9 RST */
/* P0.7 CS */
/* P0.6 SI */
/* P0.5 SO */
/* P0.4 SCK */
/* VCC +3V */
/* GND GND */
/*****************************************************/
/* 这是OurEDA.CN之ENC28J60以太网模块的随板演示程序 */
/* 配套与EasyLCP2103开发板共同使用, 连线方式如上图 */
/* ENC28J60的工作电压为3V, 正常工作其芯片发热量较大 */
/* 程序中的printf()是输出调试信息, 实际不起任何作用 */
/*****************************************************/
/* 整体程序遵循GPL协议, 仅作为开发板附属学习品之用 */
/*****************************************************/
#include <stdio.h>
#include <LPC2103.H>
#define LED_R (1<<19) /* P0.19连接红色LED */
#define LED_R_ON IOCLR |= LED_R /* 红色LED点亮 */
#define LED_R_OFF IOSET |= LED_R /* 红色LED熄灭 */
#define CMD_LED_R_ON 1 /* cmd:红色LED点亮 */
#define CMD_LED_R_OFF 2 /* cmd:红色LED熄灭 */
#define LED_G (1<<20) /* P0.20连接绿色LED */
#define LED_G_ON IOCLR |= LED_G /* 绿色LED点亮 */
#define LED_G_OFF IOSET |= LED_G /* 绿色LED熄灭 */
#define CMD_LED_G_ON 3 /* cmd:绿色LED点亮 */
#define CMD_LED_G_OFF 4 /* cmd:绿色LED熄灭 */
#define CS (1<<7) /* ENC28J60的片选 */
#define RST (1<<9) /* ENC28J60的复位 */
void SPI_Init(void) {
unsigned char dummy;
PINSEL0 |= 0x1500;
IODIR |= CS;
S0SPCCR = 0x08;
S0SPCR = 0x20;
dummy = S0SPSR;
}
do_spi(unsigned char dat) {
S0SPDR = dat;
while(0==(S0SPSR&0x80));
return(S0SPDR);
}
int main(void) {
unsigned int i;
IODIR |= LED_R;
IODIR |= LED_G;
IODIR |= RST;
IOCLR |= RST;
while(i<250) i++; /* ENC28J60复位 */
IOSET |= RST;
for(i=0;i<50000;i++); /* 等待复位结束 */
SPI_Init();
printf("Ready!"); /* 输出调试信息 */
simple_server(); /* 启动HttpServer */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -