国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網

標題: EXTI重復配置兩次導致誤觸發中斷的問題 [打印本頁]

作者: 小融一號    時間: 2016-9-29 09:55
標題: EXTI重復配置兩次導致誤觸發中斷的問題


前言
有些工程師非常的小心,小心到甚至在程序中對一個外設配置完一次還不放心,還要再配置一次。這本身看起來沒有什么問題,但是在特定的外設中,反而會不小心造成一些小問題,比如這里所要說的EXTI。

問題
某客戶在其產品的設計中,使用了 STM32F302CCT6。客戶在開發過程中,其所配置的 EXTI 外部中斷,在外部沒有中斷信號的情況下,上電后運行程序,總是會進入 EXTI 中斷程序一次。

調研
1.1.了解問題
客戶在開發中使用了 STM32F30x 的標準外設庫STM32F30x_DSP_StdPeriph_Lib_V1.2.3,在其程序設計中,參考了EXTI_Example 例程的代碼,一開始在初始化過程中先執行了一次 EXTI15_10_Config()將 PC13 設置為外部中斷口,設置為下降沿觸發中斷(PC13 外部有上拉電阻)。EXTI15_10_Config()函數原型如下:

客戶在后面的程序中,在使用 EXTI 之前再調用了一次EXTI15_10_Config()將 PC13 設置為外部中斷口。
調試運行的時候,發現 PC13 在沒有外部觸發下降沿信號的時候(經示波器確認),上電時總會進入外部中斷服務程序EXTI15_10_IRQHandler中。
2.2.問題分析
如果仔細研究過程序,其實這個問題并不難知道。在執行第一次的 EXTI15_10_Config()之后,PC13 作為 EXTI13 外部中斷已經開啟。在這種情況下,如果再執行一次EXTI15_10_Config(),我們來看看這里邊究竟有什么情況?
仔細查看EXTI15_10_Config()的程序內容,注意到這一句:
也就是說,EXTI15_10_Config()調用了SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13)來將 PC13配置為 EXTI13 中斷源。來看一下SYSCFG_EXTILineConfig 這個函數的原型,它存在于stm32f30x_syscfg.c 文件中。
SYSCFG_EXTILineConfig這個函數的執行流程是這樣的:先將 SYSCFG_EXTICR 外部中斷配置寄存器中相對應的位清零,然后再寫入新值。
也就是說,在此 PC13 作為 EXTI13 中斷的例子中,當執行“SYSCFG->EXTICR[EXTI_PinSourcex>> 0x02] &=~tmp;”時,SYSCFG_EXTICR4 的EXTI13[3:0]清零,將 EXTI13外部中斷的輸入源設置為 PA13(默認);再執行“SYSCFG->EXTICR[EXTI_PinSourcex>> 0x02] |= (((uint32_t)EXTI_PortSourceGPIOx) << (0x04 *(EXTI_PinSourcex & (uint8_t)0x03)));”時,SYSCFG_EXTICR4 的 EXTI13[3:0]寫入值 0x02,將 EXTI13 外部中斷的輸入源選擇為 PC13。
由此,產生中斷的原因很清楚:
1. 第一次執行 EXTI15_10_Config(),使能了 EXTI13 的中斷,中斷源來自 PC13;
2. 第二次執行EXTI15_10_Config(),在調用 SYSCFG_EXTILineConfig 配置 EXTI13 中斷源時,先將中斷源切回至PA13;由于失去了PC13 引腳上的高電平,在內部產生了一個下降沿,因此觸發了 EXTI13 中斷(之前已被使能),進入中斷服務程序執行代碼;
3. 從中斷服務程序返回,再將 EXTI13 中斷源重新配置到 PC13。
所以,誤觸發而進入中斷服務程序的原因就是這樣。
3.3.解決問題
問題解決很簡單,EXTI13 既然已經配置好了,就不要再去重復進行配置了,沒有必要,浪費效率且造成小問題。要使用和不要使用只要通過操作 EXTI_IMR 寄存器使能或禁用相應的中斷就可以了。如果在特殊情況下非要重新配置的話,也要注意一下這個問題,先禁用中斷。
結論
由于 SYSCFG_EXTILineConfig()函數在配置 EXTI 中斷源時,會先將中斷源配置到默認中斷源后再配置到實際要使用的中斷源,這樣重復執行EXTI15_10_Config()就存在著誤觸發中斷的風險,需加以注意。

處理
去掉重復配置的代碼即可。

重要通知 - 請仔細閱讀
意法半導體公司及其子公司(“ST”)保留隨時對ST 產品和/ 或本文檔進行變更、更正、增強、修改和改進的權利,恕不另行通知。買方訂貨之前應獲取關于ST 產品的最新信息。ST 產品的銷售依照訂單確認時的相關ST 銷售條款。
買方自行負責對ST 產品的選擇和使用, ST 概不承擔與應用協助或買方產品設計相關的任何責任。
ST 不對任何知識產權進行任何明示或默示的授權或許可。
轉售的ST 產品如有不同于此處提供的信息的規定,將導致ST 針對該產品授予的任何保證失效。
ST 和ST 徽標是ST 的商標。所有其他產品或服務名稱均為其各自所有者的財產。
本文檔中的信息取代本文檔所有早期版本中提供的信息。




文章來源:微信公眾號  融創芯城(一站式電子元器件、PCB、PCBA購買服務平臺,項目眾包平臺)






歡迎光臨 電子工程網 (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 久久精品韩国日本国产 | 国产久草视频 | 91在线视频国产 | a毛片全部播放免费视频完整18 | 国产成人啪一区二区 | 日韩免费一区二区三区在线 | 99热这里只有精品首页 | www.四虎影院在线观看 | 四虎成人免费视频 | 成人免费在线观看网站 | 青青热久久国产久精品秒播 | 麻豆免费在线视频 | 久久亚洲精品国产精品婷婷 | 2021久久伊人精品中文字幕有 | 成人精品一区二区不卡视频 | 亚洲国产精品综合久久网络 | 欧美专区在线 | 日韩一级免费毛片 | www.狠狠插| 日韩欧美一区二区三区在线观看 | 日韩毛片久久91 | 性欧美video高清熟睡 | 久久精品视频网站 | 99热成人精品免费久久 | 韩国一级大片 | 性生生活三级视频观看 | 四虎综合九九色九九综合色 | 欧美不卡视频在线 | 国产麻豆剧传媒精品好看的片 | 五月婷网站 | 成人羞羞视频在线 | 99精品在线免费观看 | 四虎永久在线精品视频播放 | 国产精品久草 | 国产一区二区三区欧美精品 | 羞羞网站在线免费观看 | 欧美日韩精彩视频 | 老师感受到它在你里面了吗app | 91手机视频在线观看 | 99久久国产综合精品国 | 青青草国 |