<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        STM32學習體會

        作者:劉力宏   來源:本站原創   點擊數:  更新時間:2014年03月04日   【字體:

           學習STM32也有一段時間了,周圍的人也在學習這款單片機,感覺它是越來越流行,沒辦法,功能強大,又便宜,誰不愿意用呢。搞不懂AVR,現在都快被擠兌成諾基亞了,還是死守價格不便宜!沒學的就跳過啊,STM32,MSP430都是不錯的選擇

          因為暑假的時候學了MSP430,所以現在學STM32讓我感覺很容易就上手了,相比51,主要是初始化更加繁瑣了,沒辦法嘛,功能強大,寄存器就多,多了配置起來就復雜一些。

          個人感覺一開始還是走寄存器路線,因為只有學懂了底層的東西才能更好的理解它的功能是怎么實現的,才能從中找出來捷徑。以后的話貌似還可以走庫函數路線,那樣可以大大的縮短開發周期。

          幾乎所有的單片機開始都是在介紹IO口,但是我感覺在此之前應該學習一下時鐘,STM32的時鐘使能分的HH特別細,每一個外設都有一個對應的時鐘使能位,還有相對應的復位位,基本上都在RCC->APB1ENR,RCC->APB2ENR兩個寄存器里面,幾乎初始化每一個外設之前,包括IO口,都要使能它的時鐘,STM32還有一個后背區,當單片機復位的時候,這個區域是不會復位的,它的RTC模塊只要有后備電源,即使單片機關機了,也可以給你提供大概136年的實時時鐘計時!

          下面就是IO口了,它的IO口有8種模式,但是常用的就那么幾種,推拉式輸出,推拉式輸入,復用功能等等,每四位控制一個IO口,最常用的就是0X8,0X3。使能了時鐘,設置好模式,就可以使用它的IO了,輸出電平的高低就是控制ODR,輸入就是讀IDR,但是這兩個寄存器只能整體訪問。但是STM32所有的位帶操作為我們可以像操作51一樣操作它的IO提供了可能,例如,如果要控制PA1這一位,只要對PAout(1),PAin(1)操作就行了,免去了數據的位運算!還有一點就是注意特殊IO,因為有的IO復位的時候默認是復用功能,如和JTAG有關的幾個IO,如果你想把它當成普通IO使用,先把JTAG禁用了之后就OK了。

          再后面就是外部中斷了,它的每個IO都可以提供中斷功能,對應著一條中斷線,但中斷線是有復用的,至于是哪一種中斷,就要看它的中斷標志寄存器了,如PA1,PB1,PC1,PD1,PE1共用EXTI1這一條中斷線,幾條中斷線又共用一個中斷向量,當然,有的是獨享的。如RTC的秒中斷和鬧鐘中斷還有溢出中斷,共用了RTCIRQChannel這個中斷向量,進去中斷服務程序之后,通過判斷中斷標志寄存器的哪一位置位了,就可以知道是哪個中斷了。但是,中斷標志要軟件清零!這點很重要。STM32還有一點很人性化,就是中斷向量可以重新映射!雖然有些限制,但還是很人性化的,給你畫PCB的時候提供了更多選擇!至于中斷的配置,按部就班的去弄就好了!

          后面還玩了看門狗,這個可以防止程序跑飛,不過目前對我們來說,作用不大。不過學過MSP430的朋友要注意,MSP430的看門狗復位時默認開啟,而STM32的默認值也是關閉!如果對它不熟悉,就先別用,因為狗餓了就會咬你的。

          后面玩了一下TFTLCD,得說明一下,觸摸屏,它的“觸摸”和“屏”是分開的,有不同的控制器,要分別編寫驅動程序。我目前只弄了屏幕顯示,這種彩屏最煩人的就是初始化,我的這塊控制器有200多命令,所以告訴你一個簡便方法,復制粘貼,然后做細節改動,因為我們不是做屏幕開發的,沒必要去寫這個初始化。之后就簡單了,單點操作的話,先寫入坐標,然后寫入RGB的值,我的屏幕是565格式,就是R有五位控制,G有6位控制,B有5位控制,值越大,顏色越深!唯一煩人的就是他沒有字庫,要自己制作字庫,建議把基本的ASCII中的字符做成字庫存在頭文件中。因為很少用漢字,而且漢字量實在是太大了!用PC2LCD取模軟件制作。

          昨天買了一塊OLED屏幕,它是自發光的,所以看起來很舒服,而且亮度可以軟件調控,大概只有硬幣大小,就花了我40塊錢,不過分辨率還可以,128×64,用過12864LCD的可以想象一下,同樣的像素點,縮小到硬幣大小,而且還是自發光,效果確實很漂亮。它的操作也不難,支持5種接口(這個要看控制器型號),有8080,6080,三線SPI,四線SPI,IIC,不過SPI模式下不能進行讀操作。在8080控制模式下,讀的時候最好來一次假讀。同樣的,初始化去復制粘貼就好了!然后每次寫入都要求是整個字節寫入。
        時間原因,先寫到這里,定時器改天再寫。

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮