999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32微處理器的GPRS數(shù)據(jù)傳輸技術(shù)的研究

2012-11-24 02:17:46鄭優(yōu)訊李宗伯
關(guān)鍵詞:程序

鄭優(yōu)訊,李宗伯

(國防科學(xué)技術(shù)大學(xué),湖南 長沙 410000)

STM32是意法半導(dǎo)體 (ST)公司推出的基于ARM Cortex-M3內(nèi)核的主流產(chǎn)品之一,它是ST公司專門針對要求高性能、低功耗和低成本的嵌入式應(yīng)用而設(shè)計的,目前已在各領(lǐng)域得到廣泛的應(yīng)用。SIM900A是SIMCom公司主推的一款緊湊型的GSM/GPRS雙頻模塊產(chǎn)品,它以性能穩(wěn)定、外觀精巧及性價比高的優(yōu)點深受廣大工程師青睞。

本文通過對STM32底層配置以及數(shù)據(jù)傳輸?shù)难芯浚榻BSTM32主要的底層配置,并著重介紹數(shù)據(jù)傳輸?shù)膶崿F(xiàn)。通過關(guān)鍵步驟的程序源代碼的介紹,闡述實現(xiàn)數(shù)據(jù)傳輸?shù)募?xì)節(jié)以及注意事項。該方法對其他項目或芯片有一定的實現(xiàn)價值和參考價值,且簡單可靠,具有普遍性和通用性。

1 STM32底層配置

為了實現(xiàn)STM32單片機與SIM900A模塊之間的數(shù)據(jù)命令的傳輸,本文以串口為例,先搭建開發(fā)平臺,在工程中加入相應(yīng)的庫函數(shù)以及配置文件,然后配置時鐘以及串口相應(yīng)的輸入輸出GPIO接口。在配置的同時,需要針對自身的原理圖進行編寫,才能保證配置正確無誤。這樣,基本的開發(fā)平臺就搭建起來了。

1.1 串口配置

在開發(fā)平臺搭建起來之后,就可以對串口進行配置了。配置速率為115 200 b/s,字長為8 bit,1 bit停止位,串口模式為輸入與輸出模式,最后,初始化相對應(yīng)的串口。初始化串口之后,打開串口的中斷響應(yīng)函數(shù),即 USART_ITConfig(USART2,USART_IT_RXNE,ENABLE)(以串口2為例),然后使能相對應(yīng)的串口,這樣串口函數(shù)就基本配置完成了。需要注意一點,有些程序可能在傳輸?shù)臅r候出現(xiàn)首位丟失。這個問題涉及到USART的機制。硬件復(fù)位之后,USART的狀態(tài)位是置位的(置1,表示已經(jīng)發(fā)送完畢),而此時數(shù)據(jù)可以進行正常發(fā)送。當(dāng)一幀數(shù)據(jù)發(fā)送后,由硬件將該位置位。而清除TC位(置0)是由軟件來完成的,通過先讀USART_SR,再寫USART_DR將該位清除。但是程序在發(fā)送第一幀數(shù)據(jù)的時候,并沒有進行讀USART_SR,而是直接進行寫USART_DR,因此TC標(biāo)志位還是置1,并沒有清除。當(dāng)發(fā)送第一幀數(shù)據(jù)之后,用 USART_GetFlagStatus()檢測狀態(tài)返回的是已經(jīng)發(fā)送完畢,程序就會馬上發(fā)送下一幀數(shù)據(jù),因此第一幀數(shù)據(jù)就會被第二幀數(shù)據(jù)覆蓋了,這樣就看不到首位數(shù)據(jù)。根據(jù)這種情況,可以在每次傳輸之前或之后清除傳輸完成標(biāo)志位,即USART_ClearFlag(USART2,USART_FLAG_TC)。

1.2 中斷配置

配置完串口之后,將對NVIC進行配置。首次配置中斷分組,然后選擇串口的中斷,即NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn(以所使用固件庫的定義為主)。

再設(shè)置搶占式中斷優(yōu)先級和響應(yīng)式中斷優(yōu)先級,然后使能中斷和初始化。以上的配置必須結(jié)合自身的情況,設(shè)計出最優(yōu)的中斷分組和優(yōu)先級,以保證程序響應(yīng)中斷的速度。中斷后所做的內(nèi)容在stm32f10x_it.c文件里配置,下文將會詳細(xì)闡述。

2 實現(xiàn)細(xì)節(jié)

實現(xiàn)GPRS數(shù)據(jù)傳輸?shù)脑硎牵篠TM32解析一串?dāng)?shù)據(jù)或命令,然后通過串口或其他方式一個字符一個字符地發(fā)送給SIM900A模塊,SIM900A接收到數(shù)據(jù)之后再通過SIM卡發(fā)送到服務(wù)器。當(dāng)SIM900A接收到數(shù)據(jù)時,立即響應(yīng)中斷,按照中斷所設(shè)置的方式進行數(shù)據(jù)處理。此時,就需要通過發(fā)送檢驗和接收檢驗來控制數(shù)據(jù)的傳輸。

2.1 發(fā)送檢驗

由于STM32逐個字符地將數(shù)據(jù)發(fā)送給SIM900A模塊,因此必須保證數(shù)據(jù)的正確性與連貫性。如果在發(fā)送的時候響應(yīng)中斷或者進行任務(wù)調(diào)度,則發(fā)送將作廢,從而導(dǎo)致程序出錯,所以開發(fā)者必須警惕該類的錯誤出現(xiàn)。

發(fā)送數(shù)據(jù)或者命令的時候,可以將數(shù)據(jù)通過參數(shù)傳給發(fā)送函數(shù),由發(fā)送函數(shù)統(tǒng)一控制,發(fā)送完成之后再返回一個發(fā)送完成標(biāo)志位,告知調(diào)用函數(shù)者發(fā)送已完成。源程序如下:

2.2 接收檢驗

當(dāng)SIM900A有數(shù)據(jù)返回或者有數(shù)據(jù)通過SIM900A接收到下位機時,STM32會立即響應(yīng)中斷來接收數(shù)據(jù)。此時就要在中斷函數(shù)中進行一系列處理。以SIM900A為例,SIM900A模塊返回的命令都是以" "+" "+"

主站蜘蛛池模板: 欧美高清国产| 97国产在线播放| 免费黄色国产视频| 久久免费视频6| 国产呦精品一区二区三区网站| 欧美亚洲国产日韩电影在线| 一级片一区| 欧美不卡视频一区发布| 亚洲日韩AV无码一区二区三区人| 国产人免费人成免费视频| 日韩亚洲综合在线| 狼友视频国产精品首页| 亚洲精品国产日韩无码AV永久免费网| 久久久久青草大香线综合精品| 欧美另类视频一区二区三区| 久草视频一区| 国产在线视频自拍| 91精品国产一区自在线拍| 91视频99| 国产一区二区在线视频观看| 亚洲欧美综合另类图片小说区| 成人亚洲视频| 免费播放毛片| 亚洲国产精品成人久久综合影院| 成人欧美日韩| 99草精品视频| 国产精品流白浆在线观看| www.av男人.com| 国产成人综合在线观看| 久久人妻xunleige无码| 天天色天天操综合网| 人妖无码第一页| 国产免费好大好硬视频| 国内丰满少妇猛烈精品播| 91在线精品免费免费播放| 亚洲精品无码不卡在线播放| 日韩第一页在线| 自拍偷拍欧美日韩| 成年人国产网站| 亚洲中文无码av永久伊人| 91麻豆精品国产高清在线| 中国精品久久| 亚洲综合狠狠| 日韩国产亚洲一区二区在线观看 | 成人福利在线视频免费观看| 国产高潮视频在线观看| 澳门av无码| 国产亚洲欧美在线专区| 国产人在线成免费视频| 亚洲伊人电影| 毛片基地美国正在播放亚洲 | 国产精品污污在线观看网站| 国产精品嫩草影院视频| 午夜免费视频网站| 亚洲成人黄色在线| 国产欧美自拍视频| 亚洲日产2021三区在线| 欧美日本在线播放| 理论片一区| 国产成人综合在线观看| 中文字幕日韩视频欧美一区| 野花国产精品入口| 国产午夜不卡| 午夜视频在线观看区二区| 亚洲 成人国产| 九色91在线视频| 高h视频在线| 欧洲高清无码在线| 国产午夜精品一区二区三区软件| 亚洲AV成人一区二区三区AV| 99一级毛片| 999国内精品久久免费视频| 一级不卡毛片| 嫩草在线视频| 欧美日韩高清| 亚洲精品无码在线播放网站| h视频在线播放| 三级欧美在线| 亚洲免费三区| 亚洲色大成网站www国产| 全部免费特黄特色大片视频| 欧美日韩精品综合在线一区|