OpenEdv-开源电子网

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

求帮助新人 求好心人

[复制链接]

26

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2015-10-12
在线时间
0 小时
发表于 2015-10-12 08:26:18 | 显示全部楼层 |阅读模式
5金钱
前天刚刚学的单片机 我想用定时器写一个跑马灯的程序 用的是STM32F103rc的板子  不知道怎么办了 求大神告知
#include "stm32f10x.h"
#include "led.h"  
 #include "stm32f10x_gpio.h"
#include "stm32f10x_tim.h"
 void RCC_Confifuration(void)
 {
 RCC_DeInit();
 RCC_HSEconfig(RCC_HSE_ON);
 while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET );
  RCC_HCLKConfig(RCC_SYSCLK_Div1);    //AHB使用系统时钟   //HCLK = SYSCLK
  RCC_PCLK2Config(RCC_HCLK_Div1);     //APB2为HCLK/1      //PCLK2 = HCLK/1
  RCC_PCLK1Config(RCC_HCLK_Div2) //APB1为HCLK/2      //PCLK1 = HCLK/2
  RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);  //PLLCLK = 8MHz * 9 = 72MHz
   RCC_PLLCmd(ENABLE);  //启动PLL //Enable PLL
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //等待PLL启动  /* Wait till PLL is ready */
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //将PLL设置为系统时钟源  /* Select PLL as system clock source */
  while(RCC_GetSYSCLKSource() != 0x08) ;  
 }
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
#ifdef  VECT_TAB_RAM 
  NVIC_SetVectorTable(NVIC_VectTab_RAM,0x00);
 #else
  NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x00);
 #endif
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 
   NVIC_InitStructure.NVIC_IRQChannel =TM2_IRQn;
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0;
 NVIC_InitStructure.NVIC_IRQChannelCmd =ENABLE;
   NVIC_Init(&NVIC_InitStructure);

    NVIC_InitStructure.NVIC_IRQChannel =USART3_IRQn;
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
   NVIC_InitStructure.NVIC_IRQChannelSubPriority =1;
 NVIC_InitStructure.NVIC_IRQChannelCmd =ENABLE;
   NVIC_Init(&NVIC_InitStructure);

   }
void TIM_Configuration(void)
{
  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  NVIC_OCInitTypeDef TIM_OCInitStructure;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  TIM_DeInit(TIM2); 
  TIM_InternalClockConfig(TIM2);

   TIM_TimeBaseStructure.TIM_Period=20;
  TIM_TimeBaseStructure.TIM_Prescaler=35999;
  TIM_TimeBaseStructure.TIM_ClockDivison=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);

}
 void TIM2_IRQHandler(void)
 {
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
if(m_SysTimeClock>=200000000)
m_SysTimeClock =0;
 else
  m_SysTimeClock+=1;

 }

int main()
{
LED_Init();
while(1)
{
  LED1(1);
  LED2(1);
  LED3(1);
  LED4(1);
  LED5(1);
  LED6(1);
  LED7(1);
  LED8(1);
   
LED1(0);

LED2(0);
 
LED3(0);

LED4(0);
 
LED5(0);

LED6(0);
 
LED7(0);

LED8(0);
 

}
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-10-12 15:24:25 | 显示全部楼层
前天刚学的单片机,今天就像用定时器加跑马灯,对自己不要太狠

先把两个分别掌握了再说吧
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 09:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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