久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6369|回復: 0
打印 上一主題 下一主題
收起左側

STM8S103移植到STM8S207時TIMER2定時器不能進入中斷的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:65608 發表于 2014-9-4 22:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

轉自:http://www.zg4o1577.cn/stm32/4312.html
STM8S103的引腳封裝圖如下


是一個20管腳的51類型單片機,8Kflash 1kRAM。

STM8S207引腳封裝如下

一個48引腳64KFLASH和6K的RAM,也是51單片機,但串口和定時器的功能多了。

從手冊看,timer1是ADVANCED 定時器,timer 2 3是通用型定時器。
在移植過程中以為只要改動器件類型同時在stm8s.h內將
#ifndef __STM8S_H
#define __STM8S_H

#define STM8S207   //STM8S103  
103注釋掉并開通207的宏定義。
定時器初始化如下
void TIM1_Init(void)
{
        TIM1_DeInit();                                          //定時器1相關寄存器復位
      
        TIM1_TimeBaseInit(7, TIM1_COUNTERMODE_UP, 9999, 0);     //中斷時間10ms  
        // TIM1_TimeBaseInit(8, TIM1_COUNTERMODE_UP, 1500, 0);     //中斷時間ms  
        TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE);                  //使能中斷  
        TIM1_Cmd(ENABLE); //使能TIM1
}

void TIM2_Init(void)
{
      TIM2_DeInit();
      TIM2_TimeBaseInit(TIM2_PRESCALER_1, 125*20);//20ms中斷
      TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);          //使能中斷
      ITC_SetSoftwarePriority(ITC_IRQ_TIM2_OVF, ITC_PRIORITYLEVEL_2);//設置d定時器中斷優先級 2
      TIM2_Cmd(ENABLE);//使能定時器1

}

但是通過單步調試,確無法進入中斷
#pragma vector=ITC_IRQ_TIM2_OVF + 2
__interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void)
{     
   
    TIM2_ClearFlag(TIM2_FLAG_UPDATE);       //清定時器1更新中斷標志

   
}

觀察寄存器發現 TIMER2 的寄存器值TIMER2_IER無法開通中斷也就是使能中斷 ,手冊和register都顯示timer2 的寄存器很少。TIMER1和TIMER2的比較如下



后來在stm8s_timer2.h里發現了端倪

typedef struct TIM2_struct
{
  __IO uint8_t CR1;  
// __IO uint8_t RESERVE1;
// __IO uint8_t RESERVE2;  //注釋掉用于STM8S207  否則用于stm8s103
  __IO uint8_t IER;  
  __IO uint8_t SR1;  
  __IO uint8_t SR2;  
  __IO uint8_t EGR;  
  __IO uint8_t CCMR1;
  __IO uint8_t CCMR2;
  __IO uint8_t CCMR3;
  __IO uint8_t CCER1;
  __IO uint8_t CCER2;
  __IO uint8_t CNTRH;
  __IO uint8_t CNTRL;
  __IO uint8_t PSCR;  
  __IO uint8_t ARRH;  
  __IO uint8_t ARRL;  
  __IO uint8_t CCR1H;
  __IO uint8_t CCR1L;
  __IO uint8_t CCR2H;
  __IO uint8_t CCR2L;
  __IO uint8_t CCR3H;
  __IO uint8_t CCR3L;
}
TIM2_TypeDef;

也就是在給timer2 的寄存器賦值時由于多了兩個沒用的,將數值頂替了,注釋掉可以了。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美中文一区 | 99热碰| 久久久精| 亚洲 欧美 日韩 在线 | 欧美一级黄色片在线观看 | 国产成人精品一区二区三区视频 | 精品av | 国产精品一区久久久 | 国产精品久久久久av | 欧美精品成人一区二区三区四区 | 亚洲精品一区二区三区免 | 激情五月婷婷丁香 | 亚洲一区播放 | 五月婷婷导航 | 国产女人第一次做爰毛片 | 国产成人区 | 日日碰狠狠躁久久躁婷婷 | 日韩在线中文字幕 | 亚洲欧美精 | 午夜伦理影院 | 午夜私人影院 | 国产在线观看av | 欧美日韩在线观看一区二区三区 | 国产精品美女久久久免费 | 天天爽天天操 | 亚洲一区二区精品视频 | 亚洲 自拍 另类 欧美 丝袜 | 超碰伊人久久 | 国产三级精品三级在线观看四季网 | 综合久久av | 网址黄 | 亚洲综合第一页 | 国产在线精品一区二区三区 | 毛片网络| 一区二区三区小视频 | 91精品国产综合久久小仙女图片 | 午夜影院网站 | 亚洲精品国产偷自在线观看 | 很很干很很日 | 一级黄色毛片 | 黄色一级大片在线免费看产 |