網上的demo是使用io7做按鍵外部中斷,我測試沒問題以下是主要**
main裡面:
exti_init()
;/* 使能總中斷 */
enableinterrupts()
;
子函式
void
exti_init
(void
)
stm8s_it.c(注意不同io口對應不同中斷函式)
interrupt_handler
(exti_portc_irqhandler,5)
}
上一章講過,我要用的是tim2的三個通道產生pwm,所以按鍵只能更換io口,
我替換成 io6,具體方法:
1.在巨集修改io口,
2.配置至外部中斷模式 改為 exti_port_gpiob
3.在gpiob中斷裡新增按鍵檢測
修改完之後測試 ,debug發現一直進入中斷,查詢網路上的方法,
1.在中斷中新增關閉總中斷
邏輯是 進中斷 - 消抖 - 檢測 - 關閉總中斷 - 處理資料
2. 在初始化中斷之前,關閉總中斷,初始化完成,在開啟總中斷。
以上我都試了但是沒有解決問題,我的現象是只要用杜邦線連線io口另一端懸空就會不斷進,用萬用表測量時,搭上去也會進入中斷,電壓2.2v左右。
百思不解下,我配置的是上拉,外面又加了乙個上拉然後問題就解決了。
原因:io6 是iic引腳,沒有上拉功能。
STM8S001串列埠總進接收中斷 無法傳送資料
1.io口沒有初始化 gpio init uart tx gpio port,uart tx,gpio mode out pp high fast gpio init uart rx gpio port,uart rx,gpio mode in pu it 2.使能了傳送中斷 uart1 itcon...
STM32 一直進入串列埠接收中斷
串列埠初始化配置時,需要開啟ore 溢位中斷,否則串列埠中斷沒有及時讀取資料會觸發溢位中斷 開啟接收中斷預設開啟溢位中斷,但是為了讀取溢位標誌位還需要明確執行以下開啟溢位中斷 如果沒有清溢位中斷就會一直進串列埠中斷。usart itconfig usart2,usart it ore,enable ...
STM8S 外部中斷應用之長按鍵識別
禁止中斷 進入停機模式 中斷返回 等待中斷 軟體中斷 如使用中斷函式時,可以通過在上圖中查詢相對應的中斷向量號,而中斷函式的名字可以自定義 basic interrupt vector table for stm8 devices typedef void far interrupt handler...