新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于STM32的SPI端口設置問題

        關于STM32的SPI端口設置問題

        作者: 時間:2016-11-10 來源:網絡 收藏
        在復用SPI總線時,必須先設置總線端口。讀取其他ARM芯片(如NXP)一般很容易看出芯片的設置是否正確。不過對于STM32就容易讓人迷惑了。例如,我們在使用SPI總線進行通信時,可以這樣設置:

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 復用的推挽輸出

        本文引用地址:http://www.104case.com/article/201611/317391.htm

        恐怕大家對MISO端口的設置就會產生疑惑了,MISO不是應該設置成為輸入端口(GPIO_Mode_IN_FLOATING)才行的嗎?

        答題是肯定的,對于STM32的這一類管腳來說(如USART_RX)即可以設置成為輸入模式,也可以設置成為復用的推挽輸出。其工作都是正常的,不過建議大家還是設置成為輸入端口的好,容易理解。

        具體產生這一問題的原因是:從功能上來說,MISO應該配置為輸入模式才對,但為什么也可以配置為GPIO_Mode_AF_PP?請看下面的GPIO復用功能配置框圖。當一個GPIO端口配置為GPIO_Mode_AF_PP是,這個端口的內部結構框圖如下:圖中可以看到,片上外設的復用功能輸出信號會連接到輸出控制電路,然后在端口上產生輸出信號。但是在芯片內部,MISO是SPI模塊的輸入引腳,而不是輸出引腳,也就是說圖中的"復用功能輸出信號"根本不存在,因此"輸出控制電路"不能對外產生輸出信號。而另一方面看,即使在GPIO_Mode_AF_PP模式下,復用功能輸入信號卻與外部引腳之間相互連接,既MISO得到了外部信號的電平,實現了輸入的功能。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 类乌齐县| 五华县| 新余市| 九台市| 阿克| 宿迁市| 乐陵市| 潢川县| 宁河县| 新龙县| 南宫市| 逊克县| 扶绥县| 江安县| 舞阳县| 合川市| 玉门市| 田林县| 台南市| 克拉玛依市| 长海县| 富锦市| 文水县| 搜索| 长寿区| 无棣县| 邳州市| 个旧市| 尼木县| 抚宁县| 黄冈市| 乐亭县| 吉隆县| 枞阳县| 沙坪坝区| 盐边县| 临武县| 遂平县| 贵阳市| 赤城县| 万盛区|