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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 43836|回復(fù): 73
打印 上一主題 下一主題
收起左側(cè)

全球首發(fā),全網(wǎng)最難,全世界第一個(gè)Proteus仿真stm32f103之實(shí)現(xiàn)定時(shí)器TIM3中斷

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
全世界第一個(gè)proteus仿真stm32f103之實(shí)現(xiàn)定時(shí)器TIM3中斷,全球首發(fā),全網(wǎng)最難

經(jīng)過(guò)堅(jiān)持不懈的排查找到BUG,這是全世界最難的仿真。
困擾大家的stm32定時(shí)器仿真終于被攻克。

注:bug為一定要開(kāi)啟使能定時(shí)器1,不然就會(huì)報(bào)錯(cuò)
必須添加 __HAL_RCC_TIM1_CLK_ENABLE()

實(shí)驗(yàn)現(xiàn)象:
        本實(shí)驗(yàn),DS0用來(lái)指示程序運(yùn)行,400ms為一個(gè)周期。DS1用于定時(shí)器中斷取反,指示
        定時(shí)器中斷狀態(tài),1000ms為一個(gè)周期。下載完后,可以看到DS0快閃,DS1慢閃。

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


stm32單片機(jī)源程序:
  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庫(kù)   
  10.     Stm32_Clock_Init(RCC_PLL_MUL9);           //設(shè)置時(shí)鐘,72M
  11.         delay_init(72);                               //初始化延時(shí)函數(shù)
  12.         //uart_init(115200);                                        //初始化串口
  13.         LED_Init();                                                        //初始化LED        
  14.         //KEY_Init();                                                        //初始化按鍵
  15.     TIM3_Init(5000-1,7200-1);               //定時(shí)器3初始化,定時(shí)器時(shí)鐘為84M,分頻系數(shù)為8400-1,
  16.                                                                                 //所以定時(shí)器3的頻率為72M/7200=10K,自動(dòng)重裝載為5000-1,那么定時(shí)器周期就是500ms
  17.     while(1)
  18.     {
  19.         LED0=!LED0;                         //LED0翻轉(zhuǎn)
  20.         delay_ms(200);                              //延時(shí)200ms
  21.     }
  22. }

復(fù)制代碼
  1. #include "timer.h"
  2. #include "led.h"



  3. TIM_HandleTypeDef TIM3_Handler;      //定時(shí)器句柄

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

  21. //定時(shí)器底冊(cè)驅(qū)動(dòng),開(kāi)啟時(shí)鐘,設(shè)置中斷優(yōu)先級(jí)
  22. //此函數(shù)會(huì)被HAL_TIM_Base_Init()函數(shù)調(diào)用
  23. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
  24. {
  25.     if(htim->Instance==TIM3)
  26.         {
  27.                 __HAL_RCC_TIM1_CLK_ENABLE();            //使能TIM3時(shí)鐘
  28.                 __HAL_RCC_TIM3_CLK_ENABLE();            //使能TIM3時(shí)鐘
  29.                 HAL_NVIC_SetPriority(TIM3_IRQn,1,3);    //設(shè)置中斷優(yōu)先級(jí),搶占優(yōu)先級(jí)1,子優(yōu)先級(jí)3
  30.                 HAL_NVIC_EnableIRQ(TIM3_IRQn);          //開(kāi)啟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. //定時(shí)器3中斷服務(wù)函數(shù)
  42. void TIM3_IRQHandler(void)
  43. {
  44.         
  45.         LED1=!LED1;        //LED1反轉(zhuǎn)
  46.    HAL_TIM_IRQHandler(&TIM3_Handler);
  47. }

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



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


評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏35 分享淘帖 頂10 踩1
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:230913 發(fā)表于 2018-8-13 16:00 | 只看該作者
含金量這么高的帖子,什么獎(jiǎng)勵(lì)也沒(méi)有,沒(méi)道理
這個(gè)至少值200
回復(fù)

使用道具 舉報(bào)

板凳
ID:1 發(fā)表于 2018-8-14 04:37 | 只看該作者
這個(gè)確實(shí)很有用,目前及其少見(jiàn),好資料,51黑有你更精彩!!!是后臺(tái)加的分,有時(shí)間延遲
回復(fù)

使用道具 舉報(bào)

地板
ID:385072 發(fā)表于 2018-8-16 17:35 | 只看該作者
PROTUES8.7啊
回復(fù)

使用道具 舉報(bào)

5#
ID:86450 發(fā)表于 2018-9-29 17:08 | 只看該作者
好牛逼!!!!
我發(fā)現(xiàn)用定時(shí)器時(shí),程序是死在這里。

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

QQ截圖20180929170656.png
回復(fù)

使用道具 舉報(bào)

6#
ID:377639 發(fā)表于 2018-10-7 12:13 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

7#
ID:333436 發(fā)表于 2018-10-7 12:40 | 只看該作者
感謝大佬分享,學(xué)習(xí)xuexi
回復(fù)

使用道具 舉報(bào)

8#
ID:353241 發(fā)表于 2018-11-18 18:11 | 只看該作者
你發(fā)現(xiàn)了真正的問(wèn)題,牛!。。。。。。。。。。。。。。。。。
回復(fù)

使用道具 舉報(bào)

9#
ID:384172 發(fā)表于 2018-12-20 09:48 | 只看該作者
強(qiáng),這都發(fā)現(xiàn)了
回復(fù)

使用道具 舉報(bào)

10#
ID:162136 發(fā)表于 2018-12-20 21:56 | 只看該作者
很少用仿真,支持折騰的技術(shù)牛人
回復(fù)

使用道具 舉報(bào)

11#
ID:325997 發(fā)表于 2018-12-26 12:12 | 只看該作者
樓主威武,果然是第一個(gè)解決此問(wèn)題的人
回復(fù)

使用道具 舉報(bào)

12#
ID:377919 發(fā)表于 2019-1-1 10:24 | 只看該作者
剛接觸 32 ,還沒(méi)有學(xué)這么深,感覺(jué)有點(diǎn)懵。
不過(guò)感覺(jué)還是寫(xiě)得挺好
回復(fù)

使用道具 舉報(bào)

13#
ID:462003 發(fā)表于 2019-1-4 17:49 | 只看該作者
定時(shí)器會(huì)工作了,但是proteus8.6仿真的定時(shí)時(shí)間太長(zhǎng)了,我要定時(shí)一秒,結(jié)果是大概30秒,請(qǐng)問(wèn)如何解決?
回復(fù)

使用道具 舉報(bào)

14#
ID:462098 發(fā)表于 2019-1-4 20:14 | 只看該作者
厲害~!!
回復(fù)

使用道具 舉報(bào)

15#
ID:253415 發(fā)表于 2019-1-5 10:24 來(lái)自手機(jī) | 只看該作者
好厲害,強(qiáng)啊
回復(fù)

使用道具 舉報(bào)

16#
ID:418900 發(fā)表于 2019-1-5 14:21 | 只看該作者
厲害,這么快就有了
回復(fù)

使用道具 舉報(bào)

17#
ID:383374 發(fā)表于 2019-1-23 01:30 來(lái)自手機(jī) | 只看該作者
值得擁有
回復(fù)

使用道具 舉報(bào)

18#
ID:481189 發(fā)表于 2019-2-26 20:27 | 只看該作者
niubility!
回復(fù)

使用道具 舉報(bào)

19#
ID:375838 發(fā)表于 2019-3-4 02:45 | 只看該作者
我試了下,好像還是不行,定時(shí)時(shí)間是理論值的9倍,好像HCLK一直是8MHz,盡管已經(jīng)配置了72MHz
回復(fù)

使用道具 舉報(bào)

20#
ID:483991 發(fā)表于 2019-3-4 07:38 | 只看該作者
先留個(gè)腳印,不知后面會(huì)不會(huì)用到
回復(fù)

使用道具 舉報(bào)

21#
ID:50988 發(fā)表于 2019-3-4 08:15 來(lái)自手機(jī) | 只看該作者
感謝樓主無(wú)私的奉獻(xiàn)!
回復(fù)

使用道具 舉報(bào)

22#
ID:375838 發(fā)表于 2019-3-4 13:53 | 只看該作者
實(shí)測(cè)delay_(100);實(shí)際上是900ms,時(shí)間變長(zhǎng)了9倍,PLL沒(méi)有開(kāi)啟
回復(fù)

使用道具 舉報(bào)

23#
ID:510485 發(fā)表于 2019-4-18 17:44 | 只看該作者
感謝樓主無(wú)私的奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

24#
ID:102665 發(fā)表于 2019-5-8 20:34 | 只看該作者
定時(shí)器會(huì)工作了,但是proteus8.6仿真驗(yàn)證定時(shí)時(shí)間太長(zhǎng)了!!!什么原因??
回復(fù)

使用道具 舉報(bào)

25#
ID:530580 發(fā)表于 2019-5-9 10:26 | 只看該作者
感謝大佬分享,學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

26#
ID:189285 發(fā)表于 2019-5-11 11:28 | 只看該作者
proteus
回復(fù)

使用道具 舉報(bào)

27#
ID:351044 發(fā)表于 2019-5-14 15:20 | 只看該作者
真真的是太高手,真真的是太為人民服務(wù)了,真真的是太感謝了!
回復(fù)

使用道具 舉報(bào)

28#
ID:61069 發(fā)表于 2019-5-16 09:26 | 只看該作者
仿真的最大頻率好像只能到8M,如果你設(shè)置成72M那這樣會(huì)增大CPU占用,搞得仿真變得更慢了
回復(fù)

使用道具 舉報(bào)

29#
ID:351610 發(fā)表于 2019-5-19 13:48 | 只看該作者
我的不是HAL庫(kù)   但我把 __HAL_RCC_TIM1_CLK_ENABLE()  宏定義的這句話粘貼進(jìn)去了 可還是沒(méi)用啊 怎么辦
回復(fù)

使用道具 舉報(bào)

30#
ID:402224 發(fā)表于 2019-5-21 08:17 | 只看該作者
厲害厲害
回復(fù)

使用道具 舉報(bào)

31#
ID:593497 發(fā)表于 2019-9-4 15:57 | 只看該作者

不錯(cuò)的資料,感謝分享,學(xué)習(xí)1
回復(fù)

使用道具 舉報(bào)

32#
ID:111893 發(fā)表于 2019-9-6 00:10 | 只看該作者
學(xué)習(xí)了大佬
回復(fù)

使用道具 舉報(bào)

33#
ID:619729 發(fā)表于 2019-10-6 12:30 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

34#
ID:626591 發(fā)表于 2019-10-19 16:07 | 只看該作者
感謝,我做定時(shí)器仿真也卡在這里,只有timer1能成功仿真,2和3都是報(bào)錯(cuò)。用你的方法使能定時(shí)器1之后就可以了
回復(fù)

使用道具 舉報(bào)

35#
ID:76606 發(fā)表于 2019-12-2 11:17 | 只看該作者
大牛人的操作
回復(fù)

使用道具 舉報(bào)

36#
ID:650054 發(fā)表于 2019-12-2 11:53 | 只看該作者
謝謝大大無(wú)私奉獻(xiàn)!!!!
回復(fù)

使用道具 舉報(bào)

37#
ID:63317 發(fā)表于 2019-12-2 16:29 | 只看該作者

感謝分享 下載了
回復(fù)

使用道具 舉報(bào)

38#
ID:654593 發(fā)表于 2019-12-2 19:55 | 只看該作者
學(xué)習(xí)了,加油!!!
回復(fù)

使用道具 舉報(bào)

39#
ID:630260 發(fā)表于 2020-2-15 22:14 | 只看該作者
大佬,請(qǐng)問(wèn)一下。只要TIM1使能時(shí)鐘就可以仿真成功了嘛?
回復(fù)

使用道具 舉報(bào)

40#
ID:658039 發(fā)表于 2020-2-18 23:00 | 只看該作者
我用protues8.8綠色版可以仿真嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕乱码一区二区三区 | 一级毛片视频 | 亚洲欧美日韩精品久久亚洲区 | 91久久国产综合久久91精品网站 | 九色 在线 | 国产高清亚洲 | 亚洲精品二区 | 日韩在线视频观看 | 精品在线一区 | 99久久婷婷国产综合精品 | 国产精品黄 | 国产美女精品 | 国产精品高清在线 | 在线视频国产一区 | 成人免费看片又大又黄 | 男人的天堂在线视频 | 国产人免费人成免费视频 | 伊人久久在线 | a网站在线观看 | 精品国产欧美一区二区三区成人 | 一区二区三区视频在线 | 国产视频三区 | 国产视频1区2区 | 中文字幕1区2区3区 日韩在线视频免费观看 | 日韩成人在线免费视频 | 久久久黑人 | 成人欧美一区二区三区黑人孕妇 | 9191在线观看| 日韩图区 | 羞羞视频网站免费观看 | 天天久久 | 欧美日韩精品久久久免费观看 | 成人欧美一区二区三区 | 免费的色网站 | 色综合久 | 久久人体视频 | 国产精品美女一区二区三区 | 久久a久久| 免费三级av | 国产精品久久久久久久久久久久久久 | 国产高清视频在线观看 |