久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM8L時鐘切換詳解 [打印本頁]

作者: 51hei小林    時間: 2016-10-10 00:58
標題: STM8L時鐘切換詳解
SMT8L的四大時鐘源LSELSIHSEHSI,都可以作為系統時鐘。


系統上電后,HSI/8作為默認系統時鐘,啟動完成后,用戶可以切換系統時鐘源。
切換分為自動切換和手動切換,沒有太大的區別。
下面是自動切換的流程圖,按照此流程圖,編寫程序,即可實現時鐘切換。
只需要三步即可實現系統時鐘切換:
①置位CLK_SWCR寄存器中的SWEN位,允許時鐘切換
②向CLK_SWR中寫數據,選擇目標時鐘源
③等待SWBSY清零,即等待時鐘切換完成


時鐘切換完成后,在主循環中翻轉IO電平,通過測量IO口的輸出頻率,可以直觀的看到切換時鐘,系統時鐘頻率發生了變化。
本程序選擇LSE32.768KHz)作為系統時鐘,時鐘切換完成后,PC7翻轉電平,使用邏輯分析可以測量到此時PC7的輸出頻率。如下圖:


可以看到PC7輸出頻率為2.73KHz,并不是32.768KHz。這是因為,STM8L一個指令周期為二個時鐘周期,同時翻轉電平的程序,高電平時間需要3個指令周期,低電平時間同樣為3個指令周期。所以最終測量到的IO輸出頻率為32.768KHz/2/6=2.730667KHz。如果選擇的時鐘源為16M(HSI),則最終測得的IO輸出頻率為16M/2/6=1.33M。要注意,系統時鐘的分頻器默認8分頻,需要清零分頻器,才滿足此計算方式。
#include"iostm8l152c6.h"
/****************************************************************************************
*開發環境:IAR for stm8v6.5
*硬件平臺:STM8L-DISCOVERY
*功能說明:本程序選擇LSE32.768KHz)作為系統時鐘,時鐘切換完成后,PC7翻轉電平,使用邏輯分析可以測量到此時PC7的輸出頻率,最終測量到的IO輸出頻率為32.768KHz/2/6=2.730667KHz。
*    者:茗風
****************************************************************************************/
/******************************************************************************************************
*      稱:voidGPIO_Init(void)
*      能:初始化PC7為高速推挽輸出
*  入口參數:無
*  出口參數:無
*      明:測量系統時鐘頻率的IO,測量到的頻率是:目標時鐘源/2/6
*      例:無
******************************************************************************************************/
void GPIO_Init(void)
{
  PC_CR1_C17  =1;//推挽輸出
  PC_CR2_C27  =1;//高速輸出
  PC_DDR_DDR7 =1;//PC4輸出
//  PC_ODR_ODR7 =0;//輸出低電平
}
/******************************************************************************************************
*      稱:voidCLOCK_Init(void)
*      能:系統時鐘切換為LSE32.768KHz
*  入口參數:無
*  出口參數:無
*      明:
*      例:無
******************************************************************************************************/
void CLOCK_Init(void)
{
  CLK_CKDIVR =0x00;//CLK_CKDIVR寄存器默認0x03分頻值為8
//自動切換
  CLK_SWCR_SWEN =1;//允許切換時鐘
  CLK_SWR =0x08;//寫入一個八位的值,用于選擇目標時鐘源
  while(CLK_SWCR_SWBSY);//等待時鐘切換完成
//手動切換
//  CLK_SWR =0x08;//寫入一個八位的值,用于選擇目標時鐘源
//  while(!CLK_ECKR_LSERDY);//等待目標時鐘源穩定
//  CLK_SWCR_SWEN =1;//允許切換時鐘
  /*
*0x01HSI selected as system clock source
*0x02LSI selected as system clock source
*0x04HSE selected as system clock source
*0x08LSE selected as system clock source
  */
}
/******************************************************************************************************
*      稱:int main(void)
*      能:通過PC4輸出選擇的時鐘
*  入口參數:無
*  出口參數:無
*      明:因為STM8l discovery沒有接外部高速晶振,所以沒辦法輸出HSE,不要
*      例:無
******************************************************************************************************/
void main( void )
{
GPIO_Init();
CLOCK_Init();
while(1)
  {
    PC_ODR_ODR7 ^=1;
  }
}







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲www| 黄色成人小视频 | 伊人影院综合 | 国产福利在线 | 欧美在线综合 | 拍床戏真做h文黄肉1v1 | 精品久久一区二区 | 97精品超碰一区二区三区 | 精品| 久久精品免费看 | 国产精品自拍第一页 | 久久久久国产精品视频 | 一道本av| 国产伦精品一区二区三区视频网站 | 一区二区黄色 | 日韩av在线免费播放 | 毛茸茸性猛交xxxx | 日韩一级淫片 | 黄色大片在线免费观看 | 成人激情视频 | 婷婷激情六月 | 日韩欧美国产高清91 | av片网站| 日韩一区二区在线视频 | 国产精品视频一区二区三区 | 一级做a爱片性色毛片 | 不卡在线视频 | 激情婷婷丁香 | 国产精品区二区三区日本 | 免费看黄色av | 中文字幕在线观看亚洲 | 欧美日韩激情 | 中文字幕在线观看一区二区 | 老司机精品福利视频 | 国产精品一二三 | 视频一区二区在线播放 | 欧美激情一区二区 | 欧美a视频 | 91狠狠综合 | 成人激情视频在线观看 | 色综合天天综合网国产成人网 |