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

QQ登錄

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

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

STM32單片機(jī)啟用多個(gè)定時(shí)器會(huì)影響其他端口嗎?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:302293 發(fā)表于 2023-4-4 17:19 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
STM32 啟用2個(gè)定時(shí),一個(gè)喂狗,另外一個(gè)亮燈計(jì)數(shù),但是總是燈亮的不正常,該怎么設(shè)置
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2023-4-4 19:44 | 只看該作者
先把狗關(guān)了停止喂狗定時(shí)器,然后看看亮燈的是否正常。
回復(fù)

使用道具 舉報(bào)

板凳
ID:517951 發(fā)表于 2023-4-5 10:28 | 只看該作者
喂狗的周期要比定時(shí)器的周期長(zhǎng). 定時(shí)器的中斷改變燈的ON,off狀態(tài). 可能是喂狗超時(shí)系統(tǒng)復(fù)位了, 導(dǎo)致燈的on,off狀態(tài)受到影響
回復(fù)

使用道具 舉報(bào)

地板
ID:1069354 發(fā)表于 2023-4-6 11:39 | 只看該作者
看優(yōu)先級(jí),看周期
回復(fù)

使用道具 舉報(bào)

5#
ID:1045628 發(fā)表于 2023-4-6 14:16 | 只看該作者
定時(shí)器中斷里喂狗?這不是只能防止跑飛,但不能防進(jìn)入死循環(huán);亮燈估計(jì)中斷里任務(wù)太多跑不過(guò)來(lái),區(qū)分一下中斷優(yōu)先級(jí),高優(yōu)先級(jí)嵌套就行
回復(fù)

使用道具 舉報(bào)

6#
ID:302293 發(fā)表于 2023-4-7 09:23 | 只看該作者
可樂(lè)11A 發(fā)表于 2023-4-6 11:39
看優(yōu)先級(jí),看周期

應(yīng)該是兩個(gè)定時(shí)器開(kāi)啟了,導(dǎo)致中斷都在進(jìn)行,定時(shí)器出現(xiàn)互相干涉的現(xiàn)象
回復(fù)

使用道具 舉報(bào)

7#
ID:302293 發(fā)表于 2023-4-7 09:47 | 只看該作者
可樂(lè)11A 發(fā)表于 2023-4-6 11:39
看優(yōu)先級(jí),看周期

  和優(yōu)先級(jí)沒(méi)有關(guān)系,是開(kāi)啟了2個(gè)定時(shí)器導(dǎo)致另一個(gè)不正常,關(guān)掉一個(gè)就可以了,怎么讓2個(gè)定時(shí)器同時(shí)工作,不相互干涉
回復(fù)

使用道具 舉報(bào)

8#
ID:1065084 發(fā)表于 2023-4-7 11:28 | 只看該作者
1.喂狗不能用定時(shí)器,用定時(shí)器喂狗就和沒(méi)開(kāi)狗一樣,定時(shí)器出問(wèn)題也就是多中斷快速觸發(fā)阻塞了低優(yōu)先級(jí)定時(shí)器中斷,那就是軟件系統(tǒng)出大問(wèn)題了,或者晶振壞了,硬件出大問(wèn)題了,用定時(shí)器喂狗等于脫褲子放屁,還不如不開(kāi)狗。

2.兩個(gè)定時(shí)器工作是不受影響的,因?yàn)槎〞r(shí)器是獨(dú)立的硬件,所有定時(shí)器一塊用也是沒(méi)問(wèn)題的,只是中斷會(huì)占用更多的系統(tǒng)時(shí)間而已。

由1得出題主基礎(chǔ)不足,那2發(fā)生的原理大概率與兩個(gè)定時(shí)器同時(shí)侵占了資源導(dǎo)致,所以猜測(cè)有以下幾種情況
A:兩個(gè)定時(shí)器使用了相同的全局變量,變量增減異常,導(dǎo)致數(shù)據(jù)錯(cuò)亂。
B:定時(shí)器修改的是狀態(tài)值,但開(kāi)關(guān)燈是在主程序中執(zhí)行的,主程序僅讀取了狀態(tài)值,在某些優(yōu)化下,主程序優(yōu)化效率將狀態(tài)值保存到內(nèi)部寄存器,那該狀態(tài)值需要用volatile關(guān)鍵字修飾(適用于51 ,32內(nèi)存結(jié)構(gòu)不太了解)
C:使用了相同名稱的全局變量和局部變量,編譯器沒(méi)有發(fā)現(xiàn)(我的keil出現(xiàn)過(guò)幾次),變量右鍵跳轉(zhuǎn)到定義位置就發(fā)現(xiàn)了錯(cuò)誤,修改不同名稱即可。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

9#
ID:302293 發(fā)表于 2023-4-7 17:49 | 只看該作者
yuxuesuixing 發(fā)表于 2023-4-7 11:28
1.喂狗不能用定時(shí)器,用定時(shí)器喂狗就和沒(méi)開(kāi)狗一樣,定時(shí)器出問(wèn)題也就是多中斷快速觸發(fā)阻塞了低優(yōu)先級(jí)定時(shí)器 ...

  我把喂狗的定時(shí)器關(guān)閉就正常了,其實(shí)邏輯很簡(jiǎn)單的,一個(gè)定時(shí)器15ms'喂狗一次,另外的一個(gè)1s閃爍led,
    把喂狗關(guān)了,led開(kāi)關(guān)正常進(jìn)入定時(shí)器
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表