STM32 例程 您所在的位置:网站首页 stm32led闪烁程序仿真 STM32 例程

STM32 例程

2024-06-04 03:50| 来源: 网络整理| 查看: 265

1、Keil5 下新建一个STM32F103R6工程,目录结构

2、 stm32f10x_it.h下添加

extern __IO uint32_t TimingDelay;

3、修改对应.c文件

void SysTick_Handler(void) { if(TimingDelay!=0x00) { TimingDelay--; } }

4、main.c文件

#include "stm32f10x.h" __IO uint32_t TimingDelay; void LED_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_8); } void delay_nms(__IO uint32_t nTime) { TimingDelay=nTime; while(TimingDelay!=0); } void Init_SysTick(void){ if(SysTick_Config(SystemCoreClock/1000)) while(1); } int main(void) { SystemInit(); LED_GPIO_Config(); Init_SysTick(); while(1) { GPIO_SetBits(GPIOC,GPIO_Pin_8); delay_nms(1000); GPIO_ResetBits(GPIOC,GPIO_Pin_8); delay_nms(1000); } }

5、Proteus运行

 

 6、运行

运行时会发现不是一秒闪烁一次,经过研究,解决方法如下

默认72M计算机带不动,修改时钟频率为较低频率比如4M即可,如果你电脑比较差可以设置2M,1M.

 

#ifdef SYSCLK_FREQ_HSE uint32_t SystemCoreClock = SYSCLK_FREQ_HSE; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_4MHz uint32_t SystemCoreClock = SYSCLK_FREQ_4MHz; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_24MHz uint32_t SystemCoreClock = SYSCLK_FREQ_24MHz; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_36MHz uint32_t SystemCoreClock = SYSCLK_FREQ_36MHz; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_48MHz uint32_t SystemCoreClock = SYSCLK_FREQ_48MHz; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_56MHz uint32_t SystemCoreClock = SYSCLK_FREQ_56MHz; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_72MHz uint32_t SystemCoreClock = SYSCLK_FREQ_72MHz; /*!< System Clock Frequency (Core Clock) */ #else /*!< HSI Selected as System Clock source */ uint32_t SystemCoreClock = HSI_VALUE; /*!< System Clock Frequency (Core Clock) */ #endif

7、观察示波器

 

 

  

 

 

 

 

 

  

  

本博客是个人工作中记录,更深层次的问题可以提供有偿技术支持。 另外建了几个QQ技术群: 2、全栈技术群:616945527 2、硬件嵌入式开发: 75764412 3、Go语言交流群:9924600

闲置域名WWW.EXAI.CN (超级人工智能)出售。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有