1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #include "ec800m.h"
- #include "usart.h"
- #include "string.h"
- #include "delay.h"
- void EC800MPwoerOn(void)
- {
- rcu_periph_clock_enable(RCU_GPIOD);
- gpio_init(GPIOD, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);
- gpio_bit_set(GPIOD,GPIO_PIN_2);
- Delay_Ms(5000);
- gd_pull_EC800M_pwr_up();
- gd_pull_EC800M_rst_down();
- Delay_Ms(50);
- gd_pull_EC800M_pwr_down();
- Delay_Ms(320);
- gd_pull_EC800M_rst_up();
- Delay_Ms(800);
- gd_pull_EC800M_pwr_up();
- }
- void EC800MSendCmd(char *buf, uint16_t len)
- {
- uint16_t i;
- uint16_t data;
- for (i = 0; i < len; i++)
- {
- data = buf[i];
- usart_data_transmit(COM_EC800, data);
- while (RESET == usart_flag_get(COM_EC800, USART_FLAG_TBE))
- ;
- }
- }
- void EC800MWaitReady()
- {
- WaitResponse(RSP_READY, 5000);
- }
- /*
- * 函数名:bool WaitResponse(char *expectStr, int timeout)
- * 输入参数:expectStr 需要匹配的关键�? timeout超时时间
- * 输出参数:true flase
- * 返回值:�?
- * 函数作用:从UART0_RX_BUF缓冲区中匹配有无对应关键字有关键字则返回true无返回false
- */
- bool WaitResponse(char *expectStr, int timeout)
- {
- bool timeoutFlag = false;
- if (timeout >= 0)
- {
- timeoutFlag = true;
- }
- // gd_485_send((char *)&UART0_RX_BUF, strlen(UART0_RX_BUF)); 不清楚�?��?�调�?485意义
- while (1)
- {
- Delay_Ms(50);
- if (UART0_RX_STAT > 0)
- {
- UART0_RX_STAT = 0;
- char *p = strstr((char *)&UART0_RX_BUF, expectStr);
- if (p)
- {
- Clear_DMA_Buffer();
- return true;
- }
- }
- timeout -= 50;
- if (timeoutFlag == true && timeout <= 0)
- {
- Clear_DMA_Buffer();
- return false;
- }
- };
- }
|