STM8系列MCU的很多管腳往往具有復用功能,在芯片的數據手冊上也有詳細介紹。但有些人,尤其新手對其標注看得不清或看得不細致,而給自己的開發工作帶來不必要的苦楚?倳r不時的有人因為管腳的識讀理解及AFR功能而在開發過程中走些彎路。這里以一個案例來拋磚引玉似的簡單介紹下。
某客戶使用8S003F3的SPI做從機跟另外的主機通信。發現使用NSS的軟件配置功能時沒問題,一切正常。而當使用8S003的SPI的NSS硬件管理模式時卻不能通信。
我們先看下STM8S003f3的管腳圖:
當8s003f3的SPI片選腳NSS使用軟件管理模式時跟外部引腳是沒關系的,只有當NSS使用硬件管理模式時才跟具體的管腳有關,F在情況是,當用NSS的軟件管理模式時通信正常,使用硬件管理模式時通信失敗,客戶使用的PC7 、PC6、PC5、PA3四根線做SPI通信,其中他把PA3做NSS配置腳。
遺憾的是,他沒有注意到PA3的NSS功能,并非它的默認復用功能,須通過管腳重映射實現,此時要設置相應的OPTION項的AFR寄存器位。這里他只是簡單地把該腳當做一個GPIO跟主機的控制口連接起來,自然此時NSS腳無法進入受控狀態,通信失敗也就不難理解了!鞠聢D是芯片數據手冊里關于PA3管腳的詳細說明】


所以要想正確使用這個NSS腳【PA3】,就得對AFR1進行配置,至于怎么配置,可以直接進行OPTION編程,也可借助其它工具比如STVP進行配置。
其實細心的人就會看到,對于上圖芯片的管腳標注,有很多旁邊標了的內容用方括號【xxyz】括起來的,這點手冊上也說明了。
該句意思是說,方括號【】內標注的功能乃復用功能的重映射可選項。(如果一種復用功能被標注2次,他們是2選1的互斥項,
不表示同時具備某一功能。)比方以上圖中的TIM2_CH3為例,在PD2、PA3兩個地方都有標注,但并不代表2個地方可以同時作為TIM2_CH3,只能二選一,具體選擇結合你的實際應用。
關于復用功能重映射內容,在芯片的手冊的可選項字節【OPTION BYTES】那里有詳細描述。
當然,因為管腳識讀和復用功能的處理而出錯,在STM32應用中也很多。不過還好,現在STM32CUBE工具的使用,會讓STM32
用戶大大減少因為管腳功能安排失誤導致困擾這方面的問題。