int main(int argc, char *argv[]) { TPCANMsg message; TPCANStatus status; unsigned long n = 0; status = CAN_Initialize(PCAN_CHANNEL, PCAN_BAUDRATE, 0, 0, 0); printf("Initialize CAN: 0x%lx\n", status); if(status != PCAN_ERROR_OK) goto leave; message.ID = 0x100; message.LEN = 8; message.MSGTYPE = PCAN_MESSAGE_STANDARD; memset(message.DATA, 0x00, message.LEN); for(;;) { while((status = CAN_Write(PCAN_CHANNEL, &message)) == PCAN_ERROR_OK) { message.DATA[0]++; if((++n % 1000) == 0) printf(" - T Message %lu\n", n); } } leave: CAN_Uninitialize(PCAN_NONEBUS); return 0; }
/*主程序*/ void main() { u8 i = 0; /*时钟初始化*/ CLK_Config(); #ifdef _IWDG_ /* Check if the system has resumed from IWDG reset */ if (RST_GetFlagStatus(RST_FLAG_IWDGF) != RESET) { /* Clear IWDGF Flag */ RST_ClearFlag(RST_FLAG_IWDGF); } /* get measured LSI frequency */ LsiFreq = LSIMeasurment(); /* IWDG Configuration */ IWDG_Config(); #endif /*初始化电源控制*/ GPIO_DeInit(GPIOD); GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_FAST); GPIO_DeInit(GPIOC); GPIO_Init(GPIOC,GPIO_PIN_1,GPIO_MODE_OUT_PP_LOW_FAST); #ifdef __DEBUG__ /*底板MCU调试串口配置*/ DBG_Config(); #endif /*按键初始化*/ KEY_Init(); /*串口初始化*/ COMM_Init(); /*遥控器硬件初始化*/ IR_Init(); /*初始化CAN*/ CAN_Initialize(); /*打开全局中断*/ enableInterrupts(); /*上电,3.3V/12V*/ VDD3V3_ON(); VDD12_ON(); while (1) { /*按键检测*/ KEY_Process(); /*红外遥控器处理*/ IR_Process(); /*CAN通信处理*/ CAN_Process(); #ifdef _IWDG_ /*独立看门狗喂狗*/ IWDG_ReloadCounter(); #endif } }