int main(void)
{
u8 key;
u8 i=0,t=0;
u8 cnt=0;
u8 canbuf[8];
u8 res;
u8 mode=CAN_Mode_LoopBack;//CAN?¤×÷????;CAN_Mode_Normal(0)?????¨??????CAN_Mode_LoopBack(1)???·??????
delay_init(72); //???±??????????
NVIC_Configuration(); //?è??NVIC????·?×é2:2??????????????2???ì????????
uart_init(9600); //????????????9600
LED_Init(); //????????LED??????????????
LCD_Init(); //??????LCD
KEY_Init(); //°??ü??????
CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_7tq,5,CAN_Mode_LoopBack);//CAN???????·??????,?¨????450Kbps
POINT_COLOR=RED;//?è??×??????ì??
LCD_ShowString(60,50,"WarShip STM32");
LCD_ShowString(60,70,"CAN TEST");
LCD_ShowString(60,90,"ATOM@ALIENTEK");
LCD_ShowString(60,110,"2012/9/11");
LCD_ShowString(60,130,"LoopBack Mode");
LCD_ShowString(60,150,"KEY0:Send WK_UP:Mode");//?????á??????
POINT_COLOR=BLUE;//?è??×?????????
LCD_ShowString(60,170,"Count:"); //?????±?°??????
LCD_ShowString(60,190,"Send Data:"); //?á??·?????????
LCD_ShowString(60,250,"Receive Data:"); //?á??????????????
while(1)
{
if(KEY0 == 0)
{
delay_ms(10);//??????
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
if(KEY0 == 0)
{
for(i=0;i<8;i++)
{
canbuf=cnt+i;//????·?????????
if(i<4) LCD_ShowNum(60+i*32,210,canbuf,3,16); //????????
else LCD_ShowNum(60+(i-4)*32,230,canbuf,3,16); //????????
}
res=Can_Send_Msg(canbuf,8);//·???8??×???
if(res)LCD_ShowString(60+80,190,"Failed"); //?á??·????§°?
else LCD_ShowString(60+80,190,"OK "); //?á??·???????
}
}
if(KEY1 == 0)
{
delay_ms(100);//??????
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
if(KEY1 ==0)
{
mode=!mode;
CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_7tq,5,mode);//CAN???¨??????????, ?¨????450Kbps
POINT_COLOR=RED;//?è??×??????ì??
if(mode == 0)
LCD_ShowString(60,130,"Nnormal Mode ");
else
LCD_ShowString(60,130,"LoopBack Mode ");
}
}
key=Can_Receive_Msg(canbuf);
if(key)//????????????
{
LED0=0;
//LCD_Fill(60,270,130,310,WHITE);//???????°??????
for(i=0;i<key;i++)
{
if(i<4) LCD_ShowNum(60+i*32,270,canbuf,3,16);//??????????
else LCD_ShowNum(60+(i-4)*32,290,canbuf,3,16); //????????
}
}
t++;
delay_ms(10);
if(t==20)
{
t=0;
cnt++;
LCD_ShowNum(60+48,170,cnt,2,16); //????????
}
}
}
求大神指点呀1