xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 190KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-06
  • 語(yǔ)言: 其他
  • 標(biāo)簽: BC95??STM32??

資源簡(jiǎn)介

NB-IOT模組BC95驅(qū)動(dòng)代碼,在STM32平臺(tái)上測(cè)試可用,含相關(guān)文檔;

資源截圖

代碼片段和文件信息

#include?“bc95.h“

/**
??******************************************************************************
??*?@file????bc95.c
??*?@author??控遠(yuǎn)智能科技有限公司
??*?@version?V1.0.0
??*?@date????2017-8-1
??*?@brief???BC95初始化及測(cè)試功能實(shí)現(xiàn)函數(shù)
??******************************************************************************
??*?@attention
??*
??*驅(qū)動(dòng)主要基于BC95_check_ack,BC95_send_cmd這兩個(gè)函數(shù),移植這兩個(gè)函數(shù),自己可以根據(jù)需要實(shí)現(xiàn)更多功能
??*本驅(qū)動(dòng)是參考正點(diǎn)原子sim900A相關(guān)代碼修改而得,主要參考修改并實(shí)現(xiàn)了BC95_check_ack,BC95_send_cmd這兩個(gè)函數(shù)
??*
??******************************************************************************
??*/



uint8_t?check_ack_timeout?=?10;
uint8_t?ue_exist_flag?=?0;
uint8_t?ue_need_reboot_flag?=?0;


//檢查返回的響應(yīng)是否符合預(yù)期
//傳入?yún)?shù)為預(yù)期返回的字符串
//返回0,為檢測(cè)到預(yù)期值
//其他值,預(yù)期字符所在的位置
uint8_t*?BC95_check_ack(char?*str)
{
char?*strx=0;
if(usart2_rcvd_flag)
{?
usart2_rcvd_buf[usart2_rcvd_len]=‘\0‘;
strx=strstr((const?char*)usart2_rcvd_buf(const?char*)str);
}?
return?(uint8_t*)strx;
}

//發(fā)生at指令函數(shù)
//cmd:at指令,ack:預(yù)期響應(yīng),waittime超時(shí)時(shí)間
//返回0,發(fā)送成功
//返回1,發(fā)送超時(shí)
uint8_t?BC95_send_cmd(char?*cmdchar?*ackuint16_t?waittime)
{
uint8_t?res=0;?
usart2_rcvd_flag=0;
usart2_rcvd_len?=?0;
memset(usart2_rcvd_buf0USART2_RX_BUF_LEN);
printf(“%s\r\n“cmd);
if(ack&&waittime)
{
while(--waittime)
{
delay_ms(20);
if(usart2_rcvd_flag)
{

if(BC95_check_ack(ack))break;
usart2_rcvd_flag=0;
}?
}
if(waittime==0)res=1;?
}
return?res;
}?
//上電程序,檢測(cè)模塊是否連接,檢查配置是否為自動(dòng)模式,是否為需要的頻段

void?BC95_power_on(void)
{
//BC95_send_cmd(SET_UE_REBOOT“REBOOT“100);
check_ack_timeout?=?10;
ue_exist_flag?=?1;
while(BC95_send_cmd(“AT““OK“100)&&check_ack_timeout)
{
if(check_ack_timeout)
{
check_ack_timeout--;
ue_exist_flag?=?0;
usart_send_str(USART3“等待模塊上電?\r\n“);
}
delay_ms(1000);
}
//判斷模塊是否是自動(dòng)連接模式,如果不是則將模塊設(shè)置成自動(dòng)模式
if(ue_exist_flag&&!BC95_send_cmd(QUERY_UE_CONNECT_MODE“AUTOCONNECTFALSE“100))
{
check_ack_timeout?=?3;
while(check_ack_timeout)
{
check_ack_timeout--;
if(BC95_send_cmd(SET_UE_AUTOCONNECT“OK“100))
{
USARTx_printf(USART3“設(shè)置為自動(dòng)模式成功!\r\n“);
break;
}
delay_ms(1000);
}
ue_need_reboot_flag?=1;
}
//判斷模塊是否是默認(rèn)設(shè)置頻段,如果不是則設(shè)置成默認(rèn)頻段
if(ue_exist_flag&&BC95_send_cmd(QUERY_UE_BANDUE_DEFAULT_BAND100))
{
BC95_send_cmd(SET_UE_DEFAULT_BANDUE_DEFAULT_BAND100);
USARTx_printf(USART3“設(shè)置默認(rèn)頻段!\r\n“);
ue_need_reboot_flag?=?1;
}
//重啟模塊生效配置
if(ue_exist_flag&&ue_need_reboot_flag)
{
ue_need_reboot_flag?=?0;
check_ack_timeout?=?10;
BC95_send_cmd(SET_UE_REBOOT“REBOOT“100);
USARTx_printf(USART3“重啟模塊!\r\n“);
while(check_ack_timeout&&!BC95_check_ack(“Neul“))
{
if(BC95_check_ack(“Neul“))
{
break;
}else
{
check_ack_timeout--;
delay_ms(1000);
}
}
}
setLEDs(LED3);
}



//檢查模塊的網(wǎng)絡(luò)狀態(tài),檢測(cè)器件LED1會(huì)閃爍,LED1常亮為附網(wǎng)注網(wǎng)成功
//此函數(shù)不檢查聯(lián)網(wǎng)狀態(tài),僅檢查附網(wǎng)注網(wǎng)狀態(tài),聯(lián)網(wǎng)狀態(tài)可以使用BC95_send_cmd,單獨(dú)檢測(cè)
//附網(wǎng)注網(wǎng)失敗或者超時(shí)返回0,返回1附網(wǎng)注網(wǎng)成功,返回2附網(wǎng)成功
uint8_t?query_net_st

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????7035??2017-08-01?21:35??BC95驅(qū)動(dòng)代碼\bc95.c
?????文件????????2015??2017-07-25?23:04??BC95驅(qū)動(dòng)代碼\bc95.h
?????文件???????85792??2017-08-01?21:40??BC95驅(qū)動(dòng)代碼\nbiot_main_sch.pdf
?????文件?????????388??2017-08-01?21:40??BC95驅(qū)動(dòng)代碼\readme.txt
?????文件??????110742??2017-08-01?21:40??BC95驅(qū)動(dòng)代碼\控遠(yuǎn)智能BC95測(cè)試代碼.pdf
?????目錄???????????0??2017-08-01?21:40??BC95驅(qū)動(dòng)代碼\

評(píng)論

共有 條評(píng)論