/* platform平台主页, */ #include "platform.h" #include "platform_interface.h" #include "HW_MCUIO.h"//#include "stm32f4xx_hal.h" #include "function.h" #include "function_interface.h" //#include "usbd_def.h" #include "function.h" #include "usbd_hw.h" #include "custom_hid_core.h" #if (USB3300==1) // #ifdef STM32F405xx extern unsigned char USBD_CUSTOM_HID_SendReport_HS(unsigned char *report, unsigned short len); extern USBD_HandleTypeDef hUsbDeviceHS; #else //extern unsigned char USBD_CUSTOM_HID_SendReport_FS(unsigned char *report, unsigned short len); //extern USBD_HandleTypeDef hUsbDeviceFS; //F401 add; extern usb_dev usbd_custom_hid; #endif //extern UART_HandleTypeDef huart1; unsigned char rx_uart_buf; volatile unsigned short _20ms_timer_count; volatile unsigned char _0s5_flag; volatile unsigned char mainloop_20ms_flag; volatile unsigned char mainloop_2ms5_flag; void timer2_count_down(unsigned int down_timer) { timer_counter_value_config(TIMER2, TIMER_CAR(TIMER2) -down_timer); } /* * */ void user_20ms_timer(void) { #if 0 //a,timer sdk connect at update keypad firmware function function.update__monitor_sdk_connect(); //b, scan nfc in NO T2 voice base; mainloop_20ms_flag=1; //c, w550 -tcpip //w5500 #if (TCPIP==1) //#if defined(TCPIP)&&(TCPIP==1) void timer2_isr(void); timer2_isr(); #endif if( ++_20ms_timer_count %5) return ; //500ms if( !(_20ms_timer_count%25)){ _20ms_timer_count=0; _0s5_flag=1; } #endif #if (UPDATE_KP_2) extern void update_2_timer(void); update_2_timer(); #endif } void user_2ms5_timer(void) { //a, tcpip -w5500 scan flag mainloop_2ms5_flag=1; //b,broadcast beacon send//void base_broadcast_process_2ms5(void); base_broadcast_process_2ms5(); //c, whitelist auth whitelist__2ms5_call(); } /* 2019.12.04 实测1ms; 环境:主频168MHz,关闭中断,IO取反用示波器测试!! */ void basic_delay_ms( unsigned short time ) { unsigned short i = 0; while( time-- ){ i = 33400; while( i-- ); } } /* 2019.12.04 实测 delay(500) =500us; 环境:主频168MHz,关闭中断,IO取反用示波器测试!! 由于GPIO无法响应 delayus(1),所以实际测试delay(500) =500us */ void basic_delay_us( unsigned int time ) { unsigned int i = 0; while( time-- ){ i = 30; while( i-- ) ; } } //----------------------------------------------------------------------- //CRC这些算法,是老PVS系统的算法 unsigned short const crc_table2[16] = //CRC余式表 { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, }; unsigned short CRC16(const unsigned char *ptr,unsigned char len) { unsigned short Crc; unsigned char da; Crc = 0; while( len-- != 0 ) { da = Crc >> 12; /* 暂存CRC的高四位 */ Crc <<= 4; /* CRC左移4位,相当于取CRC的低12位)*/ Crc ^= crc_table2[da ^ ( *ptr / 16 )]; /* CRC的高4位和本字节的前半字节相加后查表计算CRC, 然后加上上一次CRC的余数 */ da = Crc >> 12; /* 暂存CRC的高4位 */ Crc <<= 4; /* CRC左移4位, 相当于CRC的低12位) */ Crc ^= crc_table2[da ^ ( *ptr & 0x0f )]; /* CRC的高4位和本字节的后半字节相加后查表计算CRC,然后再加上上一次CRC的余数 */ ptr++; } return( Crc ); } /* */ void uart1_send_datas(unsigned char *pt,unsigned short len) { // unsigned short i; // for(i=0;iCNT, // .enable_crc_clk =__HAL_RCC_CRC_CLK_ENABLE,//__CRC_CLK_ENABLE, .uart1_print_bytes =uart1_send_datas, /*------------------------------------------------------- !!!!!!!!!!!! 警戒线 此前的数据禁止任何修改 !!!!!!!! 如需添加请在此之后!!!!!!!!!!!!!!!!! --------------------------------------------------------*/ .rf_set_txok_flag = set_tx_ok_flag, .rf_get_txok_flag = get_tx_ok_flag, .rf_waitfor_txok = waitfor_tx_ok, ._2ms5_count_down = timer2_count_down, };