91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

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

資源簡介

NB-IOT模組BC95驅動代碼,在STM32平臺上測試可用,含相關文檔;

資源截圖

代碼片段和文件信息

#include?“bc95.h“

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



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


//檢查返回的響應是否符合預期
//傳入?yún)?shù)為預期返回的字符串
//返回0,為檢測到預期值
//其他值,預期字符所在的位置
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:預期響應,waittime超時時間
//返回0,發(fā)送成功
//返回1,發(fā)送超時
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;
}?
//上電程序,檢測模塊是否連接,檢查配置是否為自動模式,是否為需要的頻段

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);
}
//判斷模塊是否是自動連接模式,如果不是則將模塊設置成自動模式
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“設置為自動模式成功!\r\n“);
break;
}
delay_ms(1000);
}
ue_need_reboot_flag?=1;
}
//判斷模塊是否是默認設置頻段,如果不是則設置成默認頻段
if(ue_exist_flag&&BC95_send_cmd(QUERY_UE_BANDUE_DEFAULT_BAND100))
{
BC95_send_cmd(SET_UE_DEFAULT_BANDUE_DEFAULT_BAND100);
USARTx_printf(USART3“設置默認頻段!\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)絡狀態(tài),檢測器件LED1會閃爍,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,單獨檢測
//附網(wǎng)注網(wǎng)失敗或者超時返回0,返回1附網(wǎng)注網(wǎng)成功,返回2附網(wǎng)成功
uint8_t?query_net_st

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

評論

共有 條評論