【STM8S003】GPIO複用問題 TIM2_CH3 採用PD2引腳輸出

        最近做了一款產品,使用STM8S003F3的片子,產品要求使用TIM2,在PD2引腳輸出PWM波形。

        安裝了STM8專用版的IAR,下載了STM8的庫文件,新建了工程,開始編寫功能。

        由於沒有STM的經驗,也是查閱了大量資料,花了1天時間搭建環境,寫了一個簡單的IO口定時輸出高低電平的測試程序進行測試,用庫文件,GPIO控制還算簡單。

        但是在接下來的一步,採用TIM2,在PD2引腳上輸出波形時,出了問題。怎麼配置都沒有波形輸出,上網查資料,才知道原來TIM2的CH3通道,有兩路,一路是PA3,一路是PD2,GPIO複用,需要配置複用資源。量了量PA3,該引腳有輸出,TIM2的初始化代碼如下:

  // init timer1    /1 perscaler-16MHz/up counter mode
  //                /time overload value/start at 0
  TIM2_TimeBaseInit( TIM2_PRESCALER_1 , 16 );
  // interrupt config and enable
  TIM2_ITConfig( TIM2_IT_UPDATE, ENABLE );
  // enable auto reload
  TIM2_ARRPreloadConfig( ENABLE );
  // 50% pulse width
  TIM2_OC3Init( TIM2_OCMODE_PWM2, TIM2_OUTPUTSTATE_ENABLE, 8, 
                TIM2_OCPOLARITY_LOW );
  TIM2_CCxCmd( TIM2_CHANNEL_3, ENABLE );
  TIM2_OC3PreloadConfig( ENABLE );
  // start timer
  TIM2_Cmd( ENABLE );
  // start interrupt
  __enable_interrupt();

        STM8片子如圖所示:

        找到原因後,那就找相應的解決辦法就行了,先查了查STM8庫文件的幫助手冊,查閱相關函數,沒有發現跟複用引腳有關的函數,然後查了查STM8的中文數據手冊,手冊上關於複用的那一頁真湊巧沒了,一臉黑線。上網查了查,找到了解決方法,直接在升級工具STVP上修改引腳複用配置即可。具體配置如下:

        首先選擇要升級的程序,然後點擊【OPTION BYTE】按鈕,在該界面的AFR1後邊,點小三角,選擇如圖中紅框的配置(其他複用可自行查看),選擇好後,點擊下載,完成後,GPIO複用配置就OK了,使用示波器量了量,成功在PD2上輸出了PWM波,而PA3上的PWM波則沒有了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章