[STM32F1] STM32F103 AD 在写完flash后变得不准与无关IO口有关这是怎么回事

[复制链接]
609|4
 楼主| 肥羊 发表于 2019-11-19 17:03 | 显示全部楼层 |阅读模式

  1. void Init_Dev(void)
  2. {

  3.    //Rtc_Init();
  4.    Init_key();
  5.    Init_Set();
  6.    InitLight();
  7.    InitAUX();
  8.    InitFan();
  9.    InitDefrost();
  10.    InitComp();
  11.    BuzzInit();
  12.    GN1621_Dev_Init();
  13.    DS1302_IO_Init();
  14.    Ds1302_Init();
  15.    InitDoor();
  16.    uart_init2(9600);
  17.    uart_init1(9600);
  18.    HotKey_Dispy_Init();
  19.    uart_init3(9600);
  20.    Adc_Init();
  21.    SwitchInit();
  22.    CodeText();
  23.    TIM3_Mode_Config();
  24.    InitAlarm();
  25.    


  26. }


TIM3_Mode_Config();代码





  1. //配置成PWM输出
  2. void TIM3_Mode_Config(void)
  3. {
  4.    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;//初始化TIM2的时间基数单位
  5.    TIM_OCInitTypeDef  TIM_OCInitStructure;//初始化TIM2的外设
  6.    GPIO_InitTypeDef GPIO_InitStructure;

  7.   /*
  8.    关掉JTAD调式 PA15作为普通IO口
  9.   */
  10.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  11.   GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);

  12.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

  13.   //由于PA6是复用的所以要设置一下
  14.   //GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);

  15.   //配置PA16 PWM输出的模式
  16.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 ;
  17.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                 
  18.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  19.   GPIO_Init(GPIOA, &GPIO_InitStructure);

  20.   //打开TIM3的时钟
  21.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

  22.   //TIM2的时间基数单位设置(如计数终止值:999,从0开始 ;计数方式:向上计数)         
  23.   #if INSIDE_RCC
  24.    TIM_TimeBaseStructure.TIM_Prescaler= (2 - 1); //时钟预分频数,时钟频率=64MHZ/(时钟预分频+1) 之后是8M   
  25.    TIM_TimeBaseStructure.TIM_Period=3200-1; //自动重装载寄存器的值/  10KHZ
  26.   #else
  27.    TIM_TimeBaseStructure.TIM_Prescaler= (9 - 1); //时钟预分频数,时钟频率=72MHZ/(时钟预分频+1) 之后是8M   
  28.    TIM_TimeBaseStructure.TIM_Period=1000-1; //自动重装载寄存器的值/        8KHZ
  29.   #endif
  30.   
  31.   TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;        
  32.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  33.   TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
  34.   
  35.   //TIM3的外设的设置
  36.   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;        //TIM脉冲宽度调制模式1   
  37.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//这个暂时不知道,stm32固件库里没有搜到。应该是定时器输出声明使能的意思        
  38.   TIM_OCInitStructure.TIM_Pulse = 500;//设置了待装入捕获比较寄存器的脉冲值         
  39.   TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //TIM输出比较极性高
  40.   TIM_OC1Init(TIM3, &TIM_OCInitStructure);
  41.          
  42.   TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);//使能或者失能TIMx在CCR1上的预装载寄存器
  43.   TIM_ARRPreloadConfig(TIM3, ENABLE);        //使能TIM2重载寄存器ARR  

  44.   TIM_ClearFlag(TIM3, TIM_FLAG_Update); //清除溢出中断标志
  45.   TIM_Cmd(TIM3, ENABLE);//使能TIM2     

  46.   
  47. }


InitAlarm();
代码



  1. void InitAlarm(void)
  2. {
  3.         GPIO_InitTypeDef GPIO_InitStructure;
  4.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  , ENABLE);

  5.         /*
  6.      关掉JTAD调式 PA15作为普通IO口
  7.         */
  8.         //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  9.         //GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
  10.        

  11.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  12.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  14.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  15.         GPIO_ResetBits(GPIOB,GPIO_Pin_9);


  16. }
 楼主| 肥羊 发表于 2019-11-19 17:08 | 显示全部楼层
把void InitAlarm(void)函数的
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
不用就正常了
或者吧void InitAlarm(void)和void TIM3_Mode_Config(void)的顺序调一下也行
难道AD值和GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);有关吗

还是与flash读写有关
开机不写flashAD值又正常的一些flash就不正常了
但是按上面改一改写又没事
,现在的问题是到达时与写flash有关还是与GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);有关
paotangsan 发表于 2019-12-10 13:48 | 显示全部楼层
没看明白啥意思
labasi 发表于 2019-12-10 13:50 | 显示全部楼层
是不是误写入哪里了
keaibukelian 发表于 2019-12-10 13:53 | 显示全部楼层
恢复出厂时设置再试试看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

287

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部