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

標題: 全球首發,全網最難,全世界第一個Proteus仿真stm32f103之實現定時器TIM3中斷 [打印本頁]

作者: happy87    時間: 2018-8-13 15:43
標題: 全球首發,全網最難,全世界第一個Proteus仿真stm32f103之實現定時器TIM3中斷
全世界第一個proteus仿真stm32f103之實現定時器TIM3中斷,全球首發,全網最難

經過堅持不懈的排查找到BUG,這是全世界最難的仿真。
困擾大家的stm32定時器仿真終于被攻克。

注:bug為一定要開啟使能定時器1,不然就會報錯
必須添加 __HAL_RCC_TIM1_CLK_ENABLE()

實驗現象:
        本實驗,DS0用來指示程序運行,400ms為一個周期。DS1用于定時器中斷取反,指示
        定時器中斷狀態,1000ms為一個周期。下載完后,可以看到DS0快閃,DS1慢閃。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


stm32單片機源程序:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "key.h"
  6. #include "timer.h"




  7. int main(void)
  8. {
  9.     HAL_Init();                                     //初始化HAL庫   
  10.     Stm32_Clock_Init(RCC_PLL_MUL9);           //設置時鐘,72M
  11.         delay_init(72);                               //初始化延時函數
  12.         //uart_init(115200);                                        //初始化串口
  13.         LED_Init();                                                        //初始化LED        
  14.         //KEY_Init();                                                        //初始化按鍵
  15.     TIM3_Init(5000-1,7200-1);               //定時器3初始化,定時器時鐘為84M,分頻系數為8400-1,
  16.                                                                                 //所以定時器3的頻率為72M/7200=10K,自動重裝載為5000-1,那么定時器周期就是500ms
  17.     while(1)
  18.     {
  19.         LED0=!LED0;                         //LED0翻轉
  20.         delay_ms(200);                              //延時200ms
  21.     }
  22. }

復制代碼
  1. #include "timer.h"
  2. #include "led.h"



  3. TIM_HandleTypeDef TIM3_Handler;      //定時器句柄

  4. //通用定時器3中斷初始化
  5. //arr:自動重裝值。
  6. //psc:時鐘預分頻數
  7. //定時器溢出時間計算方法:Tout=((arr+1)*(psc+1))/Ft us.
  8. //Ft=定時器工作頻率,單位:Mhz
  9. //這里使用的是定時器3!
  10. void TIM3_Init(u16 arr,u16 psc)
  11. {  
  12.     TIM3_Handler.Instance=TIM3;                          //通用定時器3
  13.     TIM3_Handler.Init.Prescaler=psc;                     //分頻系數
  14.     TIM3_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;    //向上計數器
  15.     TIM3_Handler.Init.Period=arr;                        //自動裝載值
  16.     TIM3_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;//時鐘分頻因子
  17.     HAL_TIM_Base_Init(&TIM3_Handler);
  18.    
  19.     HAL_TIM_Base_Start_IT(&TIM3_Handler); //使能定時器3和定時器3更新中斷:TIM_IT_UPDATE   
  20. }

  21. //定時器底冊驅動,開啟時鐘,設置中斷優先級
  22. //此函數會被HAL_TIM_Base_Init()函數調用
  23. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
  24. {
  25.     if(htim->Instance==TIM3)
  26.         {
  27.                 __HAL_RCC_TIM1_CLK_ENABLE();            //使能TIM3時鐘
  28.                 __HAL_RCC_TIM3_CLK_ENABLE();            //使能TIM3時鐘
  29.                 HAL_NVIC_SetPriority(TIM3_IRQn,1,3);    //設置中斷優先級,搶占優先級1,子優先級3
  30.                 HAL_NVIC_EnableIRQ(TIM3_IRQn);          //開啟ITM3中斷   
  31.         
  32.                
  33.                    // HAL_NVIC_SetPriority(TIM1_BRK_IRQn, 0, 0);
  34.     //HAL_NVIC_EnableIRQ(TIM1_BRK_IRQn);
  35.     //HAL_NVIC_SetPriority(TIM1_UP_IRQn, 0, 0);
  36.     //HAL_NVIC_EnableIRQ(TIM1_UP_IRQn);
  37.         
  38.         
  39.         }
  40. }

  41. //定時器3中斷服務函數
  42. void TIM3_IRQHandler(void)
  43. {
  44.         
  45.         LED1=!LED1;        //LED1反轉
  46.    HAL_TIM_IRQHandler(&TIM3_Handler);
  47. }

  48. //回調函數,定時器中斷服務函數調用
  49. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
  50. {
  51.     if(htim==(&TIM3_Handler))
  52.     {
  53.         
  54.     }
  55. }
復制代碼



全部資料51hei下載地址:
7 定時器中斷實驗.zip (777.61 KB, 下載次數: 1000)



作者: happy87    時間: 2018-8-13 16:00
含金量這么高的帖子,什么獎勵也沒有,沒道理
這個至少值200
作者: admin    時間: 2018-8-14 04:37
這個確實很有用,目前及其少見,好資料,51黑有你更精彩!!!是后臺加的分,有時間延遲
作者: fzrwlx    時間: 2018-8-16 17:35
PROTUES8.7啊
作者: jjwangxu2008    時間: 2018-9-29 17:08
好牛逼!!!!
我發現用定時器時,程序是死在這里。

QQ截圖20180929170656.png (50.12 KB, 下載次數: 271)

QQ截圖20180929170656.png

作者: henrybee    時間: 2018-10-7 12:13
謝謝樓主
作者: cjd153957    時間: 2018-10-7 12:40
感謝大佬分享,學習xuexi
作者: hff    時間: 2018-11-18 18:11
你發現了真正的問題,牛!。。。。。。。。。。。。。。。。。
作者: 下一秒    時間: 2018-12-20 09:48
強,這都發現了
作者: bayga456    時間: 2018-12-20 21:56
很少用仿真,支持折騰的技術牛人
作者: wxxujian    時間: 2018-12-26 12:12
樓主威武,果然是第一個解決此問題的人
作者: qxqy080602    時間: 2019-1-1 10:24
剛接觸 32 ,還沒有學這么深,感覺有點懵。
不過感覺還是寫得挺好
作者: morrin    時間: 2019-1-4 17:49
定時器會工作了,但是proteus8.6仿真的定時時間太長了,我要定時一秒,結果是大概30秒,請問如何解決?
作者: Leon_fgi    時間: 2019-1-4 20:14
厲害~!!
作者: 家媽滴白    時間: 2019-1-5 10:24
好厲害,強啊
作者: conky    時間: 2019-1-5 14:21
厲害,這么快就有了

作者: 夢園心田    時間: 2019-1-23 01:30
值得擁有
作者: STM32dream    時間: 2019-2-26 20:27
niubility!
作者: zhiweijiang    時間: 2019-3-4 02:45
我試了下,好像還是不行,定時時間是理論值的9倍,好像HCLK一直是8MHz,盡管已經配置了72MHz
作者: 正規007    時間: 2019-3-4 07:38
先留個腳印,不知后面會不會用到
作者: lanxiang13    時間: 2019-3-4 08:15
感謝樓主無私的奉獻!
作者: zhiweijiang    時間: 2019-3-4 13:53
實測delay_(100);實際上是900ms,時間變長了9倍,PLL沒有開啟
作者: LY_123    時間: 2019-4-18 17:44
感謝樓主無私的奉獻
作者: easyming    時間: 2019-5-8 20:34
定時器會工作了,但是proteus8.6仿真驗證定時時間太長了!!!什么原因??

作者: ihk789123    時間: 2019-5-9 10:26
感謝大佬分享,學習
作者: 22793088    時間: 2019-5-11 11:28
proteus
作者: oy野馬    時間: 2019-5-14 15:20
真真的是太高手,真真的是太為人民服務了,真真的是太感謝了!
作者: 吹哥來了    時間: 2019-5-16 09:26
仿真的最大頻率好像只能到8M,如果你設置成72M那這樣會增大CPU占用,搞得仿真變得更慢了
作者: 布谷布谷    時間: 2019-5-19 13:48
我的不是HAL庫   但我把 __HAL_RCC_TIM1_CLK_ENABLE()  宏定義的這句話粘貼進去了 可還是沒用啊 怎么辦
作者: jkoommm    時間: 2019-5-21 08:17
厲害厲害
作者: njfwx    時間: 2019-9-4 15:57

不錯的資料,感謝分享,學習1
作者: 木一小哥    時間: 2019-9-6 00:10
學習了大佬
作者: longsw    時間: 2019-10-6 12:30
感謝分享
作者: zycstc    時間: 2019-10-19 16:07
感謝,我做定時器仿真也卡在這里,只有timer1能成功仿真,2和3都是報錯。用你的方法使能定時器1之后就可以了
作者: 刺眼的光景    時間: 2019-12-2 11:17
大牛人的操作
作者: bocelli    時間: 2019-12-2 11:53
謝謝大大無私奉獻!!!!
作者: WFX777888    時間: 2019-12-2 16:29

感謝分享 下載了
作者: heroycbtt    時間: 2019-12-2 19:55
學習了,加油!!!
作者: 夢醒荒唐    時間: 2020-2-15 22:14
大佬,請問一下。只要TIM1使能時鐘就可以仿真成功了嘛?

作者: shu_007    時間: 2020-2-18 23:00
我用protues8.8綠色版可以仿真嗎?
作者: supersongge    時間: 2020-2-19 22:38
mark 感謝
作者: kust336    時間: 2020-2-26 15:07
這個確實很有用,目前及其少見,好資料,51黑有你更精彩
作者: kust336    時間: 2020-2-26 15:07
這個確實很有用,目前及其少見,好資料,51黑有你更精彩
作者: cndeusa    時間: 2020-2-28 14:14
多謝樓主,太強了
作者: liucw2056    時間: 2020-2-28 18:57
學習一下 感謝分享~~
作者: 持勤補拙    時間: 2020-3-10 23:45
真的太感謝了
作者: asm555    時間: 2020-3-17 18:22
這才是真正的大神級人物
作者: ddhex    時間: 2020-3-17 22:38
請問一下,TIM3的PWM互補模式如何開啟?
作者: xizai    時間: 2020-3-31 11:19
感謝分享
作者: 775447930    時間: 2020-4-3 08:40
感謝樓主解決這個問題,糾結很久了
作者: wbaisen    時間: 2020-4-4 20:42
樓主牛皮,一開始還不信,結果一直開不了定時器2,后來開了定時器1就ok了
作者: 來了就歐了    時間: 2020-4-13 10:37
樓主厲害
作者: 拉風是我兒    時間: 2020-4-19 22:51
謝謝分享!
作者: zxk1    時間: 2020-4-23 07:57
十分厲害
作者: houge123    時間: 2020-4-26 13:57
相見恨晚啊,這個坑我踩過
作者: 江瀚林    時間: 2020-4-27 22:08
樓主你好,定時器仿真可以用了,但是時間擴大了大約9倍,目前我用的是Proteus8.9SP2,官方還是沒有解決這個問題。
作者: onepcb    時間: 2020-5-3 09:42
謝謝分享!,,,,
作者: timemachine2000    時間: 2020-5-11 21:17
剛裝好下載試一下 謝謝分享
作者: Oh_huo    時間: 2020-5-12 14:36
在初始化其他定時器的函數中先寫這句話就可以了RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//proteus中的bug,用其他定時器,必須先使能TIM1。
作者: kaixin061421    時間: 2020-5-12 22:02
這個真的太厲害了,我只知道是定時器的問題,但是不知道怎么解決
作者: 雪域qw    時間: 2020-6-1 19:28
強啊,好沒看到這么詳細的仿真stm32的
作者: jzp_eric    時間: 2020-6-4 11:26
jjwangxu2008 發表于 2018-9-29 17:08
好牛逼!!!!
我發現用定時器時,程序是死在這里。

你好請問你在proteus仿真使用定時器時會導致cpu占用率過高的問題嗎?有解決嗎?
作者: 品牌在離開    時間: 2020-6-4 11:50
nb,搜了很久了
作者: NewFolder    時間: 2020-6-5 11:42
沒道理啊,TIM1是APB2的,TIM3是APB1的,感覺毫無關系啊
作者: iaskall    時間: 2020-9-21 20:43
謝謝樓主,proteus8.8完全可以正常運行
作者: cc307400    時間: 2021-1-2 09:02
好厲害,強啊
作者: QAQQAQ    時間: 2021-4-12 11:50
proteus的定時器仿真終于可以用上了!!!
作者: ddssj    時間: 2021-4-14 14:45
仿真比較難!
作者: mick32    時間: 2021-5-4 18:29
nice work - thanks
Is it possible to simulate PWM/timers  with Proteus F401 model
作者: adamsecond    時間: 2021-5-12 07:49
給各贊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~
作者: iaskall    時間: 2022-4-30 18:34
樓主的確前!
作者: iaskall    時間: 2022-4-30 18:35
shu_007 發表于 2020-2-18 23:00
我用protues8.8綠色版可以仿真嗎?

估計仿真要配置很多庫文件才能夠進行,關鍵新建代碼的時候是要配置編譯器的。當然,你可以編譯好了用hex文件仿真沒有問題
作者: 光輝戯歲月    時間: 2022-5-4 19:56
大佬牛逼,我一直想stm32仿真

作者: xuefei    時間: 2022-11-27 17:24
正在學習STM32的仿真,很有用,謝謝樓主




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人福利在线 | 午夜一区 | 国产成人一区二区三区 | 密室大逃脱第六季大神版在线观看 | 国产精品激情在线 | 大学生a级毛片免费视频 | 99久久精品免费看国产小宝寻花 | 精品九九 | 日韩中文字幕一区 | 精品1区 | 亚洲精品一区二区三区四区高清 | 中文字幕成人 | 国产中文视频 | www.888www看片 | 欧美一区二区三区久久精品视 | 日本超碰| 欧美2区 | 午夜影院在线 | 久久久久国产精品一区二区 | 精品乱人伦一区二区三区 | 在线免费观看黄视频 | 日韩不卡三区 | 亚洲性综合网 | 九九综合 | 一区二区三区回区在观看免费视频 | 黄色毛片大全 | 人人爽人人爽 | 免费视频一区二区 | 中文字幕在线免费观看 | 一区二区三区免费 | 日韩精品免费在线观看 | 成人亚洲精品久久久久软件 | 高清亚洲 | 日韩中文字幕视频在线观看 | 婷婷综合在线 | 99国产精品久久久久 | 国产在线一区二区三区 | 国产91在线播放 | 色嗨嗨| 亚洲区一区二 | 久久久久久久一区二区三区 |