打印
[STM32F4]

开发板晶振问题

[复制链接]
1004|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaoxqi|  楼主 | 2019-1-4 18:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用STM32 的板子,,但是手里没有8M的晶振,所以就用 了,12M的,,但是不正常,上电之后PA15和PA14接的是两个led,PA15接的led常亮,PA14接的的led不亮,,而且芯片下载程序又能下载
沙发
huangchui| | 2019-1-4 18:53 | 只看该作者
应该不是芯片坏的问题吧

使用特权

评论回复
板凳
zhaoxqi|  楼主 | 2019-1-4 19:02 | 只看该作者
不管我些什么程序进去,两个脚的状态都不变

使用特权

评论回复
地板
jiaxw| | 2019-1-4 19:07 | 只看该作者
怀疑是电路有问题

使用特权

评论回复
5
zhaoxqi|  楼主 | 2019-1-4 19:20 | 只看该作者

可是我仔细检查了电路和板子,都没问题,,JTAG正常使用。
cv

使用特权

评论回复
6
spark周| | 2019-1-4 19:26 | 只看该作者
用的是12M的晶振?

使用特权

评论回复
7
zhaoxqi|  楼主 | 2019-1-4 19:30 | 只看该作者
这会有影响吗?感觉不管下什么程序进去感觉芯片好像没有运行。

使用特权

评论回复
8
liliang9554| | 2019-1-4 19:33 | 只看该作者


下载程序后复位一下

使用特权

评论回复
9
午夜粪车| | 2019-1-4 19:37 | 只看该作者
将reset and run 勾上

使用特权

评论回复
10
jiajs| | 2019-1-4 19:40 | 只看该作者
还是有影响的 主频就不对了

使用特权

评论回复
11
shimx| | 2019-1-4 19:45 | 只看该作者
没明白,晶振和LED亮有什么关系

使用特权

评论回复
12
zhaoxqi|  楼主 | 2019-1-4 19:48 | 只看该作者
结贴了,多谢大家讨论这么多哈,呵呵

使用特权

评论回复
13
wuhany| | 2019-1-4 19:52 | 只看该作者
定时器进不了中断

使用特权

评论回复
14
heweibig| | 2019-1-4 19:55 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
15
wuhany| | 2019-1-4 20:00 | 只看该作者

main.c
int main(void)
{
   TIM_NVIC_Config();
   LED_InitC();
   LED_Open3();
   TIM_Config();
  while (1)
  {
  }
}

time.c
#include "time.h"

void TIM_NVIC_Config(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);        
  NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;        
  NVIC_InitStructure.NVIC_IRQChannelPriority=0;        
  NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}

void TIM_Config(void)
{
   __IO uint16_t CCR3_Val = 13654;
   __IO uint16_t CCR4_Val = 6826;
   uint16_t PrescalerValue = 0;
        
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_OCInitTypeDef  TIM_OCInitStructure;
        
  PrescalerValue = (uint16_t) (SystemCoreClock  / 6000000) - 1;

        TIM_TimeBaseStructure.TIM_Period=65535;        
                TIM_TimeBaseStructure.TIM_Prescaler=0;  
        TIM_TimeBaseStructure.TIM_ClockDivision=0;         
                TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;        
                TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);                  
                TIM_PrescalerConfig(TIM3, PrescalerValue, TIM_PSCReloadMode_Immediate);

        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_Timing;        
                TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_Pulse = CCR3_Val;
        TIM_OC3Init(TIM3,&TIM_OCInitStructure);
        TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Disable);
        
        TIM_ITConfig(TIM3,TIM_IT_CC3,ENABLE);
        TIM_Cmd(TIM3,ENABLE);
}
中断
void TIM3_IRQHandler(void)
{
  if (TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET)
  {
    TIM_ClearITPendingBit(TIM3, TIM_IT_CC3);
    LED3_Toggle();
    capture = TIM_GetCapture3(TIM3);
    TIM_SetCompare3(TIM3, capture + CCR3_Val);
  }        
}

使用特权

评论回复
16
jiahy| | 2019-1-4 20:04 | 只看该作者

void
TIM1_Init(u32 TIM_Period)//TIM_PeriodΪ16λµÄÊý
{
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
                /* Time base configuration */
                TIM_TimeBaseStructure.TIM_Period =TIM_Period;
                TIM_TimeBaseStructure.TIM_Prescaler = 0;                //¶¨Ê±Æ÷ʱÖÓ·ÖƵ
                TIM_TimeBaseStructure.TIM_ClockDivision = 0;        //²ÉÑù·ÖƵ
                TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;        //ÏòÉϼÆÊý
                TIM_TimeBaseInit(TIM11, &TIM_TimeBaseStructure);
          TIM_PrescalerConfig(TIM11, 13, TIM_PSCReloadMode_Immediate );
          TIM_ITConfig(TIM11, TIM_IT_Update, ENABLE);
          TIM_Cmd(TIM11, ENABLE);
}

          NVIC_InitTypeDef  NVIC_InitStructure;
         
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM11, ENABLE);  
          NVIC_InitStructure.NVIC_IRQChannel = TIM1_TRG_COM_TIM11_IRQn;
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVIC_InitStructure);      

使用特权

评论回复
17
lizye| | 2019-1-4 20:06 | 只看该作者

void TIM1_TRG_COM_TIM11_IRQHandler(void)
{
        //
        // Clear the timer interrupt.
        //
  if(TIM_GetITStatus(TIM11,TIM_IT_Update)!=RESET)
        {        
}
}
参考,不过我的是M4

使用特权

评论回复
18
wuhany| | 2019-1-4 20:10 | 只看该作者
嗯嗯 谢谢,我的用的是STM320518—EVAL的板子,我的设置都差不多,我能把工程发给你看能进入中断么?实在是弄了很久不好意思

使用特权

评论回复
19
jiahy| | 2019-1-4 20:13 | 只看该作者
我手上没板子,要不然可以试下。

使用特权

评论回复
20
lizye| | 2019-1-4 20:16 | 只看该作者

void TIM3_IRQHandler(void)
{
  if (TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET)
  {
    TIM_ClearITPendingBit(TIM3, TIM_IT_CC3);

    /* LED3 toggling with frequency = 219.7 Hz */
    STM_EVAL_LEDToggle(LED3);
    capture = TIM_GetCapture3(TIM3);
    TIM_SetCompare3(TIM3, capture + CCR3_Val);
  }
  else
  {
    TIM_ClearITPendingBit(TIM3, TIM_IT_CC4);

    /* LED4 toggling with frequency = 439.4 Hz */
    STM_EVAL_LEDToggle(LED4);
    capture = TIM_GetCapture4(TIM3);
    TIM_SetCompare4(TIM3, capture + CCR4_Val);
  }
}
看你程序和例程差不多,中断有不一样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

粉丝