/******************************************************************************* * Function Name : main. * Description : Main routine. * Input : None. * Output : None. * Return : None. *******************************************************************************/ int main(void) { int i; Reset_GC3355(); Set_System(); Set_USBClock(); USB_Interrupts_Config(); #ifdef USE_USB_AS_HOST_IF USB_Init(); #endif USART_Config_Default(); btc_ltc_uart_config(115200); delay_init(72); //gpio_init(); Timerx_Init(100,7200-1); USART_Config_Default(); rx_cx_buffers_init(); while (1) { dispatch_host_cmd(); report_nonce_to_host(); if(timer_count > 100) { timer_count = 0; //PR_DEBUG("GPIOB8 = %d\n",GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_8)); led1_revert(); //PR_DEBUG("%02X\n",get_next_n_out(&usb_trans_buffer,152)); //PR_DEBUG("has cmd length = %d\n",trans_buffer_has_cmd(&usb_trans_buffer)); } //delay_ms(1000); //PR_DEBUG("delay 1000ms \n"); } }
/******************************************************************************* * Function Name : Virtual_Com_Port_init. * Description : Virtual COM Port Mouse init routine. * Input : None. * Output : None. * Return : None. *******************************************************************************/ void Virtual_Com_Port_init(void) { /* Update the serial number string descriptor with the data from the unique ID*/ Get_SerialNum(); pInformation->Current_Configuration = 0; /* Connect the device */ PowerOn(); /* Perform basic device initialization operations */ USB_SIL_Init(); /* configure the USART to the default settings */ USART_Config_Default(); bDeviceState = UNCONNECTED; }
/******************************************************************************* * Function Name : USART_Config. * Description : Configure the EVAL_COM1 according to the line coding structure. * Input : None. * Return : Configuration status TRUE : configuration done with success FALSE : configuration aborted. *******************************************************************************/ bool USART_Config(void) { /* set the Stop bit*/ switch (linecoding.format) { case 0: USART_InitStructure.USART_StopBits = USART_StopBits_1; break; case 1: USART_InitStructure.USART_StopBits = USART_StopBits_1_5; break; case 2: USART_InitStructure.USART_StopBits = USART_StopBits_2; break; default : { USART_Config_Default(); return (FALSE); } } /* set the parity bit*/ switch (linecoding.paritytype) { case 0: USART_InitStructure.USART_Parity = USART_Parity_No; break; case 1: USART_InitStructure.USART_Parity = USART_Parity_Even; break; case 2: USART_InitStructure.USART_Parity = USART_Parity_Odd; break; default : { USART_Config_Default(); return (FALSE); } } /*set the data type : only 8bits and 9bits is supported */ switch (linecoding.datatype) { case 0x07: /* With this configuration a parity (Even or Odd) should be set */ USART_InitStructure.USART_WordLength = USART_WordLength_8b; break; case 0x08: if (USART_InitStructure.USART_Parity == USART_Parity_No) { USART_InitStructure.USART_WordLength = USART_WordLength_8b; } else { USART_InitStructure.USART_WordLength = USART_WordLength_9b; } break; default : { USART_Config_Default(); return (FALSE); } } USART_InitStructure.USART_BaudRate = linecoding.bitrate; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; /* Configure and enable the USART */ USART_Init(EVAL_COM1, &USART_InitStructure); return (TRUE); }
/******************************************************************************* * Function Name : UART0_Config. * Description : Configure the UART 1 according to the linecoding structure. * Input : None. * Return : Configuration status TRUE : configuration done with success FALSE : configuration aborted. *******************************************************************************/ bool USART_Config(void) { /* set the Stop bit*/ switch (linecoding.format) { case 0: USART_InitStructure.USART_StopBits = USART_StopBits_1; break; case 1: USART_InitStructure.USART_StopBits = USART_StopBits_1_5; break; case 2: USART_InitStructure.USART_StopBits = USART_StopBits_2; break; default : { USART_Config_Default(); return (FALSE); } } /* set the parity bit*/ switch (linecoding.paritytype) { case 0: USART_InitStructure.USART_Parity = USART_Parity_No; break; case 1: USART_InitStructure.USART_Parity = USART_Parity_Even; break; case 2: USART_InitStructure.USART_Parity = USART_Parity_Odd; break; default : { USART_Config_Default(); return (FALSE); } } /*set the data type : only 8bits and 9bits is supported */ switch (linecoding.datatype) { case 0x07: USART_InitStructure.USART_WordLength = USART_WordLength_8b; break; case 0x08: USART_InitStructure.USART_WordLength = USART_WordLength_9b; break; default : { USART_Config_Default(); return (FALSE); } } USART_InitStructure.USART_BaudRate = linecoding.bitrate; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); return (TRUE); }