意法半導體是目前世界最大的半導體公司之一共享應用。目前為止
意法半導體MCU的增長速度已經(jīng)超過了半導體工業(yè)的整體增長速度新格局。自1999年起優勢與挑戰,ST始終是世界十大半導體公司之一。據(jù)最新的工業(yè)統(tǒng)計數(shù)據(jù)生動,意法半導體是全球第五大半導體廠商有序推進,在很多市場居世界領先水平最深厚的底氣。尤其是生產(chǎn)得STM32的意法半導體MCU產(chǎn)品,被廣泛應用在各種行業(yè)領域范圍,給當代社會帶來了更多的便利.國內本土MCU產(chǎn)品能替換代替兼容的主要有
靈動微.一家致力于MCU產(chǎn)品和解決方案的廠商.
下面本文要介紹的是有關于實現(xiàn)STM32 GPRS數(shù)據(jù)傳輸技術資料.
1全過程、實現(xiàn)細節(jié)
實現(xiàn)GPRS數(shù)據(jù)傳輸?shù)脑硎牵篠TM32解析一串數(shù)據(jù)或命令,然后通過串口或其他方式一個字符一個字符地發(fā)送給SIM900A模塊損耗,SIM900A接收到數(shù)據(jù)之后再通過SIM卡發(fā)送到服務器講故事。當SIM900A接收到數(shù)據(jù)時,立即響應中斷總之,按照中斷所設置的方式進行數(shù)據(jù)處理面向。此時,就需要通過發(fā)送檢驗和接收檢驗來控制數(shù)據(jù)的傳輸研學體驗。
1.1效率、發(fā)送檢驗
由于STM32逐個字符地將數(shù)據(jù)發(fā)送給SIM900A模塊,因此必須保證數(shù)據(jù)的正確性與連貫性近年來。如果在發(fā)送的時候響應中斷或者進行任務調度,則發(fā)送將作廢發展目標奮鬥,從而導致程序出錯技術先進,所以開發(fā)者必須警惕該類的錯誤出現(xiàn)。
發(fā)送數(shù)據(jù)或者命令的時候延伸,可以將數(shù)據(jù)通過參數(shù)傳給發(fā)送函數(shù)認為,由發(fā)送函數(shù)統(tǒng)一控制,發(fā)送完成之后再返回一個發(fā)送完成標志位新趨勢,告知調用函數(shù)者發(fā)送已完成反應能力。源程序如下:
voidUSART_Send_Byte(charMyData){//發(fā)送字符函數(shù)
USART_ClearFlag(USART2,USART_FLAG_TC);
//清除標志位結構重塑,如上所述
USART_SendData(USART2聽得懂,MyData);//發(fā)送數(shù)據(jù)
while(USART_GetFlagStatus(USART2高質量發展,USART_FLAG_TC)==RESET)全方位;//等待發(fā)送完成
}
voidUSART_Send_Str(char*s){//發(fā)送字符串
inTI;
intlen=strlen(s)-1影響力範圍;//字符串長度
for(inTI=0大局;i《len;i++)
USART_Send_Byte(s[i])邁出了重要的一步;//循環(huán)將字符串發(fā)送出去
if(s[i]==0x0a){//判斷發(fā)送是否結束
SendCFFlag=TRUE有序推進;
//如果為真,則發(fā)送完成標志位置為真
}else{
USART_Send_Byte(s[i])需求;//如果為假堅定不移,則發(fā)送出去
}
}
1.2、接收檢驗
當SIM900A有數(shù)據(jù)返回或者有數(shù)據(jù)通過SIM900A接收到下位機時真諦所在,STM32會立即響應中斷來接收數(shù)據(jù)指導。此時就要在中斷函數(shù)中進行一系列處理。以SIM900A為例深入交流研討,SIM900A模塊返回的命令都是以“r”+“n”+“”結尾資料,因此檢驗傳輸結束可以根據(jù)它進行判斷。在中斷響應函數(shù)(即stm32f10x_it.c文件里)的USART2_IRQHandler函數(shù)可以設置如下:
voidUSART2_IRQHandler(void)
{
if(USART_GeTITStatus(USART2關註度,USART_IT_RXNE)橫向協同!=RESET){
//將接收字符存入接收緩沖區(qū)RxBuffer
RxBuffer[ReceCounter++]=(char)USART_ReceiveData(USART2);
//判斷是否接收結束
if(RxBuffer[ReceCounter]==′′&&RxBuffer[ReceCounter-1]==0x0A&&
RxBuffer[ReceCounter-2]==0x0D){
ReceCFFlag=TRUE敢於挑戰;
}
USART_ClearITPendingBit(USART2不斷創新,USART_IT_RXNE);
}
}
該函數(shù)的基本思路是:將USART接收到的字符逐個存入緩沖區(qū)提供了遵循,然后判斷緩沖區(qū)最后3個字符是否為SIM900A的結束標識符參與水平。如果為假,繼續(xù)接收服務效率;如果為真明確相關要求,則將接收完成標識符置為真。當接收完成標識符為真時統籌發展,說明接收完成深化涉外,接下來就可以進行數(shù)據(jù)處理了。
1.3生產製造、命令函數(shù)實現(xiàn)方法
下面將以AT+CIPSEND為例開展試點,闡述發(fā)送數(shù)據(jù)的細節(jié)攜手共進。通過初始化模塊、開啟網(wǎng)絡推進一步、建立接入點和建立TCP連接之后經過,就可以開始發(fā)送數(shù)據(jù)。實現(xiàn)源代碼如下:
u8GPRS_Send(void){
u8i=0實際需求;
u8*p解決方案;
USART_SendToGPRS(“AT+CIPSENDrn”);//發(fā)送命令
Delay_ms(500)善謀新篇;//延時500ms
p=LookFor_Str(RxBuffer增產,“》”);
//查找是否有“》”符號方法,如果有行動力,則可以發(fā)送數(shù)據(jù)
if(p!=0){
p=0切實把製度;
memset(RxBuffer良好,0,BufferSize)銘記囑托;//清空接收緩沖區(qū)
USART_SendToGPRS(GPRSSendData)引領;//發(fā)送數(shù)據(jù)
Delay_ms(500);
Delay_ms(500)示範;
Delay_ms(500)應用前景;
p=LookFor_Str(RxBuffer,“SENDOK”)運行好;
if(p首次!=0){//判斷是否發(fā)送成功
//發(fā)送成功操作
return1;
}else{
//發(fā)送失敗操作
return0部署安排;
}
}
}
該函數(shù)的基本思路是:首先發(fā)送命令搖籃,然后查找是否有“》”符號,如果有推廣開來,則說明可以開始發(fā)送數(shù)據(jù)推動。一段延時之后查找接收緩沖區(qū)是否有“SENDOK”字眼,有則說明發(fā)送成功資源配置,沒有則表示發(fā)送失敗開展研究。可以根據(jù)判斷作進一步的操作相互融合。
本文關鍵詞: 意法半導體MCU
相關文章:基于意法半導體MCU STM32的底層配置
深圳市英尚微電子有限公司是一家專業(yè)的靜態(tài)隨機記憶體產(chǎn)品及方案提供商,十年來專業(yè)致力代理分銷存儲芯片IC, SRAM綠色化、MRAM不同需求、pSRAM、 FLASH芯片、SDRAM(DDR1/DDR2/DDR3)等,為客人提供性價比更高的產(chǎn)品及方案總之。
英尚微電子中國區(qū)指定的授權代理:VTI面向、NETSOL、JSC濟州半導體(EMLSI)研學體驗、Everspin 建設項目、IPSILOG、LYONTEK落實落細、ISSI相結合、CYPRESS、ISOCOME製高點項目、PARAGON不折不扣、SINOCHIP、UNIIC資源優勢; 著名半導體品牌的專業(yè)分銷商 如:RAMTROM高效利用、ETRON、FUJITSU估算、LYONTEK講理論、WILLSEMI。
?更多資訊關注SRAMSUN. mifengguhua.com 0755-66658299