新手上路
- 积分
- 22
- 金钱
- 22
- 注册时间
- 2017-8-23
- 在线时间
- 4 小时
|

楼主 |
发表于 2017-8-23 15:32:14
|
显示全部楼层
下面这是主程序,哪位大神告诉我在哪个地方修改
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "lcd.h"
#include "sdram.h"
#include "lan8720.h"
#include "timer.h"
#include "pcf8574.h"
#include "adc.h"
#include "rtc.h"
#include "malloc.h"
#include "lwip/netif.h"
#include "lwip_comm.h"
#include "lwipopts.h"
#include "tcp_client_demo.h"
#include "tcp_server_demo.h"
#include "udp_demo.h"
#include "httpd.h"
u8 *tbuf1;
volatile u16 uu;
//加载UI
//mode:
//bit0:0,不加载;1,加载前半部分UI
//bit1:0,不加载;1,加载后半部分UI
void lwip_test_ui(u8 mode)
{
u8 speed;
u8 buf[30];
POINT_COLOR=RED;
if(mode&1<<0)
{
LCD_Fill(30,30,lcddev.width,110,WHITE); //清除显示
LCD_ShowString(30,30,200,16,16,"Apollo STM32F4/F7");
LCD_ShowString(30,50,200,16,16,"Ethernet lwIP Test");
LCD_ShowString(30,70,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,90,200,16,16,"2016/2/29");
}
if(mode&1<<1)
{
////////LCD_Fill(30,110,lcddev.width,lcddev.height,WHITE); //清除显示
LCD_ShowString(30,110,200,16,16,"lwIP Init Successed");
if(lwipdev.dhcpstatus==2)
sprintf((char*)buf,"DHCP IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);//打印动态IP地址
else
sprintf((char*)buf,"Static IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);//打印静态IP地址
LCD_ShowString(30,130,210,16,16,buf);
speed=LAN8720_Get_Speed();//¥得到网速,不需要
if(speed&1<<1)
LCD_ShowString(30,150,200,16,16,"Ethernet Speed:100M");
else
LCD_ShowString(30,150,200,16,16,"Ethernet Speed:10M");
LCD_ShowString(30,170,200,16,16,"KEY0:TCP Server Test");
LCD_ShowString(30,190,200,16,16,"KEY1:TCP Client Test");
LCD_ShowString(30,210,200,16,16,"KEY2:UDP Test");
}
}
int main(void)
{
u8 t;
u8 key;
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(360,25,2,8); //设置时钟,180Mhz
delay_init(180); //初始化延时函数
uart_init(115200); //初始化USART
LED_Init(); //初始化LED
KEY_Init(); //初始化按键
SDRAM_Init(); //初始化SDRAM
LCD_Init(); //初始化LCD
PCF8574_Init(); //初始化PCF8574
MY_ADC_Init(); //初始化ADC
RTC_Init(); //初始化RTC
TIM3_Init(1000-1,900-1); //定时器3初始化,定时器时钟为90M,分频系数为900-1,
//所以定时器3的频率为90M/900=100K,自动重装载为1000-1,那么定时器周期就是10ms
my_mem_init(SRAMIN); //初始化内部内存池
//////// my_mem_init(SRAMEX); //初始化外部内存池
my_mem_init(SRAMCCM); //初始化CCM内存池
POINT_COLOR=RED;
LED0=0;
lwip_test_ui(1); //加载前半部分UI
LCD_ShowString(30,110,200,16,16,"lwIP Initing...");
while(lwip_comm_init()) //lwip初始化
{
LCD_ShowString(30,110,200,20,16,"LWIP Init Falied! ");
delay_ms(500);
LCD_ShowString(30,110,200,16,16,"Retrying... ");
delay_ms(500);
}
LCD_ShowString(30,110,200,20,16,"LWIP Init Success!");
LCD_ShowString(30,130,200,16,16,"DHCP IP configing..."); //等待DHCP获取
#if LWIP_DHCP //使用DHCP
while((lwipdev.dhcpstatus!=2)&&(lwipdev.dhcpstatus!=0XFF))//等待DHCP获取成功/超时溢出
{
lwip_periodic_handle(); //LWIP内核需要定时处理的函数
}
#endif
lwip_test_ui(2); //加载后半部分UI
httpd_init(); //HTTP初始化(默认开启websever)
init_send(); //by HZHH
tbuf1=mymalloc(SRAMIN,200); //申请内存 //BY HZHH
while(1)
{
key=KEY_Scan(0);
switch(key)
{
case KEY0_PRES://TCP Server模式
tcp_server_test();
lwip_test_ui(3);//重新加载UI
break;
case KEY1_PRES://TCP Client模式
tcp_client_test();
lwip_test_ui(3);//重新加载UI
//显示内存0的使用率 BY HZHH
sprintf((char*)tbuf1,"PerUse:%d",my_mem_perused(SRAMIN));//
LCD_ShowString(30,270,210,16,16,tbuf1);
uu=234;
sprintf((char*)tbuf1,"PerUseXX:%d",uu);//
LCD_ShowString(30,290,210,16,16,tbuf1);
sprintf((char*)tbuf1,"Remote Port:%d",TCP_CLIENT_PORT);//客户端端口号
LCD_ShowString(30,330,210,16,16,tbuf1);
break;
case KEY2_PRES://UDP模式
udp_demo_test();
lwip_test_ui(3);//重新加载UI
break;
}
lwip_periodic_handle();
delay_ms(2);
t++;
if(t==100)LCD_ShowString(30,230,200,16,16,"Please choose a mode!");
if(t==200)
{
t=0;
LCD_Fill(30,230,230,230+16,WHITE);//清除显示
LED0=!LED0;
} |
|