找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5502|回复: 0
打印 上一主题 下一主题
收起左侧

stm32流水灯程序源码

[复制链接]
跳转到指定楼层
楼主
ID:230060 发表于 2017-8-30 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include "stm32f10x.h"
  2. #include <stdio.h>
  3. #include "delay.h"

  4. /*************************************************
  5. 函数: void RCC_Configuration(void)
  6. 功能: 复位和时钟控制 配置
  7. 参数: 无
  8. 返回: 无
  9. **************************************************/
  10. void RCC_Configuration(void)
  11. {
  12.   ErrorStatus HSEStartUpStatus;                    //定义外部高速晶体启动状态枚举变量
  13.   RCC_DeInit();                                    //复位RCC外部设备寄存器到默认值
  14.   RCC_HSEConfig(RCC_HSE_ON);                       //打开外部高速晶振
  15.   HSEStartUpStatus = RCC_WaitForHSEStartUp();      //等待外部高速时钟准备好
  16.   if(HSEStartUpStatus == SUCCESS)                  //外部高速时钟已经准别好
  17.   {
  18.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //开启FLASH预读缓冲功能,加速FLASH的读取。所有程序中必须的用法.位置:RCC初始化子函数里面,时钟起振之后
  19.     FLASH_SetLatency(FLASH_Latency_2);                    //flash操作的延时
  20.             
  21.     RCC_HCLKConfig(RCC_SYSCLK_Div1);               //配置AHB(HCLK)时钟等于==SYSCLK
  22.     RCC_PCLK2Config(RCC_HCLK_Div1);                //配置APB2(PCLK2)钟==AHB时钟
  23.     RCC_PCLK1Config(RCC_HCLK_Div2);                //配置APB1(PCLK1)钟==AHB1/2时钟

  24.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);  //配置PLL时钟 == 外部高速晶体时钟 * 9 = 72MHz
  25.     RCC_PLLCmd(ENABLE);                                   //使能PLL时钟

  26.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)    //等待PLL时钟就绪
  27.     {
  28.     }
  29.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);            //配置系统时钟 = PLL时钟
  30.     while(RCC_GetSYSCLKSource() != 0x08)                  //检查PLL时钟是否作为系统时钟
  31.     {
  32.     }
  33.   }

  34.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);  //允许GPIOB、AFIO时钟
  35. }

  36. /*************************************************
  37. 函数: void GPIO_Configuration(void)
  38. 功能: GPIO配置
  39. 参数: 无
  40. 返回: 无
  41. **************************************************/
  42. void GPIO_Configuration(void)
  43. {
  44.   GPIO_InitTypeDef GPIO_InitStructure;        //定义GPIO初始化结构体

  45.   /* Configure PE.0,PE.1,PE.2,PE.3,PE.4,PE.5,PE.6,PE.7 as Output push-pull */
  46.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0  ;
  47.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  48.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  49.   GPIO_Init(GPIOB, &GPIO_InitStructure);
  50. }



  51. /*************************************************
  52. 函数: int main(void)
  53. 功能: main主函数
  54. 参数: 无
  55. 返回: 无
  56. **************************************************/
  57. int main(void)
  58. {
  59.   RCC_Configuration();
  60.   GPIO_Configuration();
  61.   delay_init(72);
  62.   while(1)
  63.   {
  64.     GPIO_SetBits(GPIOB,GPIO_Pin_0);

  65.     delay_ms(500);
  66.     GPIO_ResetBits(GPIOB,GPIO_Pin_0);

  67.     delay_ms(500);
  68.         }   
  69. }


复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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