找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3216|回复: 0
收起左侧

STM32系统时钟框图与应用源码

[复制链接]
ID:366110 发表于 2018-7-6 10:22 | 显示全部楼层 |阅读模式

这是STM32F10XX时钟系统框图

这是STM32F10XX时钟系统框图
时钟系统框图

接下来是制作过程!
360截图20180706100518620.jpg


360截图20180706100528321.jpg


360截图20180706100536196.jpg

单片机源程序如下:
  1. #include <stm32f10x.h>
  2. #include "led.h"
  3. #include "key.h"
  4. #include "beep.h"
  5. #include "system.h"

  6. /****************************************************************************
  7. * Function Name  : main
  8. * Description    : Main program.
  9. * Input          : None
  10. * Output         : None
  11. * Return         : None
  12. ****************************************************************************/

  13. int main(void)
  14. {
  15.     u8 ledState = 0xF0, keyValue, clk;
  16.     u32 i;

  17.     LED_Config();            
  18.     BEEP_Config();
  19.     KEY_Config();

  20.     clk = 6;                          //默认设置时钟为最高
  21.         while(1)
  22.         {
  23.         keyValue = KEY_Scan();        //键盘扫描
  24.         if( keyValue == KEY_UP)       //上按键按下增加频率
  25.         {
  26.             clk++;
  27.             if(clk > 6)
  28.             {
  29.                 clk = 6;
  30.             }   
  31.         }
  32.         if(keyValue == KEY_DOWN)      //下按键按下减少频率
  33.         {
  34.             clk--;
  35.             if(clk < 1)
  36.             {
  37.                 clk = 1;
  38.             }   
  39.         }

  40.         /* 若由按键设置,那么设置相应的时钟频率 */
  41.         if((keyValue == KEY_UP) | (keyValue == KEY_DOWN))
  42.         {
  43.             switch(clk)
  44.             {
  45.                 case(1):
  46.                     SYSTEM_SetClock(32);
  47.                     break;
  48.                 case(2):
  49.                     SYSTEM_SetClock(40);
  50.                     break;
  51.                 case(3):
  52.                     SYSTEM_SetClock(48);
  53.                     break;
  54.                 case(4):
  55.                     SYSTEM_SetClock(56);
  56.                     break;
  57.                 case(5):
  58.                     SYSTEM_SetClock(64);
  59.                     break;
  60.                 case(6):
  61.                     SYSTEM_SetClock(72);
  62.                     break;
  63.             }
  64.         }

  65.         /* LED闪烁,并让蜂鸣器发声,方便大家看出时钟频率改变 */
  66.         LED_SetState(ledState);
  67.         for(i=0; i<0x05FFFF; i++);
  68.         ledState = ~ledState;
  69.         BEEP_Work();
  70.         }
  71. }

复制代码
0.png
所有资料51hei提供下载:
4、时钟.rar (479.71 KB, 下载次数: 35)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表