国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

英尚微電子的個人空間 http://www.4huy16.com/space-uid-163369.html [收藏] [復制] [RSS]

博客

基于意法半導體MCU STM32的底層配置

已有 1448 次閱讀2020-1-15 15:00 |個人分類:MCU| stm32f10x, 意法半導體MCU, MCU

本文通過介紹意法半導體MCU STM32主要的底層配置,通過關鍵步驟的程序源代碼的介紹,闡述實現數據傳輸的細節以及注意事項。該方法對其他項目或芯片有一定的實現價值和參考價值,且簡單可靠,具有普遍性和通用性。
 
1、STM32底層配置
為了實現STM32單片機與SIM900A模塊之間的數據命令的傳輸,本文以串口為例,先搭建開發平臺,在工程中加入相應的庫函數以及配置文件,然后配置時鐘以及串口相應的輸入輸出GPIO接口。在配置的同時,需要針對自身的原理圖進行編寫,才能保證配置正確無誤。這樣基本的開發平臺就搭建起來了。
 
1.1、串口配置
在開發平臺搭建起來之后,就可以對串口進行配置了。配置速率為115200b/s,字長為8bit,1bit停止位,串口模式為輸入與輸出模式,最后初始化相對應的串口。初始化串口之后,打開串口的中斷響應函數,即USART_ITConfig(USART2,USART_IT_RXNE,ENABLE)(以串口2為例),然后使能相對應的串口,這樣串口函數就基本配置完成了。需要注意一點,有些程序可能在傳輸的時候出現首位丟失。這個問題涉及到USART的機制。硬件復位之后,USART的狀態位是置位的(置1,表示已經發送完畢),而此時數據可以進行正常發送。當一幀數據發送后,由硬件將該位置位。而清除TC位(置0)是由軟件來完成的,通過先讀USART_SR,再寫USART_DR將該位清除。但是程序在發送第一幀數據的時候,并沒有進行讀USART_SR,而是直接進行寫USART_DR,因此TC標志位還是置1,并沒有清除。當發送第一幀數據之后,用USART_GetFlagStatus()檢測狀態返回的是已經發送完畢,程序就會馬上發送下一幀數據,因此第一幀數據就會被第二幀數據覆蓋了,這樣就看不到首位數據。根據這種情況來說可以在每次傳輸之前或之后清除傳輸完成標志位,即USART_ClearFlag(USART2,USART_FLAG_TC)。
 
1.2、中斷配置
配置完串口之后,將對NVIC進行配置。首次配置中斷分組,然后選擇串口的中斷,即NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn(以所使用固件庫的定義為主)。
 
再設置搶占式中斷優先級和響應式中斷優先級,然后使能中斷和初始化。以上的配置必須結合自身的情況,設計出最優的中斷分組和優先級,以保證程序響應中斷的速度。中斷后所做的內容在stm32f10x_it.c文件里配置。

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
返回頂部