123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #include "ml307a.h"
- #include "mba32a.h"
- uint8_t u4length=0;
- uint8_t resetcount_4g=0;
- bool u4RecvFlag = false;
- bool ml307aFail = false;
- uint8_t g_ML307A_8buf[2048]={0};
- uint8_t g_ML307A_8buf_Down[2048]={0};
- bool reset4Gmodule = false;
- extern UART_HandleTypeDef huart3;
- extern UART_HandleTypeDef huart4;
- uint8_t sendCmd_4G(char *pCmd, char *pRes, uint32_t timeOut, uint8_t sendNum);
- void ML307A_Init(void)
- {
-
- //HAL_Delay(2000);
- INIT_4G_FRAME();
-
- if(!sendCmd_4G("AT\r\n","OK",1,1))
- {
- ml307aFail=true;
- printf("4G模组异常!\r\n");
- }
-
- if (ml307aFail)
- {
- printf("#4G模块初始化Fail");
- }
- else
- {
- //HAL_Delay(2000);
-
- if (sendCmd_4G("AT+CPIN?\r\n", "+CME ERROR: 10", 1, 1)) // 00检测是否有SIM卡 <+CPIN: READY\r\nOK>
- {
- printf("\tERROR!-->未检测到SIM卡\r\n");
- OLED_ShowString(42,50,(unsigned char*)"NO_SIM",12,0);
- }
- }
- }
- uint8_t sendCmd_4G(char *pCmd, char *pRes, uint32_t timeOut, uint8_t sendNum)
- {
- uint8_t i = 0;
- uint32_t time;
- for(i = 0; i < sendNum; i++)
- {
- time = timeOut * 10;
- USART_SendString(&huart4, pCmd);
- HAL_Delay(50);
- printf("------->%s",g_ML307A_8buf_Down);
-
- while(time--)
- {
- if(strstr((const char *)g_ML307A_8buf_Down, pRes) != NULL) // 如果检索到关键词
- {
- return 1;
- }
- HAL_Delay(100);
- }
- }
- return 0;
- }
- /**
- @brief 重启模块
- @param 无
- @return 无
- */
- void ML307AReset(void)
- {
- reset4Gmodule=true;
- resetcount_4g+=1;
- printf("4G Module_Reset\n");
- HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
- HAL_Delay(5000);
- HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);
- }
|