OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6946|回复: 5

就是想做个定时中断 用小灯的灭亮显示

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2015-8-3
在线时间
0 小时
发表于 2015-8-3 17:20:32 | 显示全部楼层 |阅读模式
5金钱

#include "stm32f10x_lib.h"

void RCC_Configuration(void)
{
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
while (RCC_GetFlagStatus(RCC_FLAG_HSERDY)==RESET);

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//预取指缓存使能
FLASH_SetLatency(FLASH_Latency_2);  //设置代码延时值 延迟周期为2
RCC_HCLKConfig(RCC_SYSCLK_Div1);   //AHB时钟 = 系统时钟
RCC_PCLK2Config(RCC_HCLK_Div1);    //APB2时钟 = HCLK
RCC_PCLK1Config(RCC_HCLK_Div2);    //APB1时钟 = HCLK
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);  //PLL输入时钟 x 9
RCC_PLLCmd(ENABLE);

while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource()!=0x08);    //PLL为信号源
}

void NVIC_Configuration(void)
{
 NVIC_InitTypeDef NVIC_InitStructure;
 #ifdef VECT_TAB_RAM
   NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);
 #else
    NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);
#endif
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
}

void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; //设置为复挽推出
GPIO_Init(GPIOC,&GPIO_InitStructure);
}

void TIM_Configuration(void)
{
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef        TIM_OCInitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

TIM_DeInit(TIM2); //将外设TIM2寄存器重设为缺省值
TIM_InternalClockConfig(TIM2); //设置TIMx内部时钟

TIM_TimeBaseStructure.TIM_Period = 2000;
TIM_TimeBaseStructure.TIM_Prescaler = 35999; //时钟分频36000
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;  //设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);
   
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_Timing;//输出比较模式
TIM_OC1Init(TIM2,&TIM_OCInitStructure);
TIM_Cmd(TIM2,ENABLE);

TIM_PrescalerConfig(TIM2,35999,TIM_PSCReloadMode_Immediate);

TIM_ClearFlag(TIM2, TIM_FLAG_Update); //清除中断标志
TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE ); //使能定时器中断
//TIM_ClearITPendingBit(TIM2, TIM_FLAG_Update);
}


 int main(void)
{
#ifdef DEBUG
 debug();
 #endif

 RCC_Configuration();  //使能外设时钟
 NVIC_Configuration(); //中断设置
 GPIO_Configuration(); //管脚使能
 TIM_Configuration();

  while(1)
  {
  ;
  }
       
}

 


求帮助修改   我用的是STM32F107  不过只要改出来就好

最佳答案

查看完整内容[请看2#楼]

参考我们的例程即可。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-8-3 17:20:33 | 显示全部楼层
参考我们的例程即可。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

19

主题

217

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-4-1
在线时间
34 小时
发表于 2015-8-3 19:53:59 | 显示全部楼层
先设置定时器中断,在中断服务函数里实现LED亮灭,乍一看楼上的程序很复杂
一直在路上,一直在成长。
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2015-8-3
在线时间
0 小时
 楼主| 发表于 2015-8-4 12:09:18 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
e 可不可以给个链接
回复

使用道具 举报

2

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2015-7-30
在线时间
1 小时
发表于 2015-8-4 18:38:54 | 显示全部楼层
呵呵,去站内找
方法比问题多,思路决定出路,人生无极限贵在坚持。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-8-4 22:42:00 | 显示全部楼层
回复【4楼】1329289273:
---------------------------------
自己动手
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 23:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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