Chỉnh sửa : Câu hỏi này là sai. Stm325105 chỉ có một pin thức dậy. Nhưng các bộ phận ST khác có nhiều hơn một chốt đánh thức, vì vậy câu trả lời đã cho là hợp lệ cho các bộ phận đó.
Tôi có một stm32f105 có hai nút tạm thời được kết nối với đầu vào đánh thức. Bộ xử lý được đặt ở chế độ STANDBY. Khi nhấn bất kỳ nút nào hoặc bộ hẹn giờ RTC kích hoạt, cpu sẽ thức dậy.
Vấn đề là tôi muốn cpu làm những việc khác nhau tùy thuộc vào việc kích hoạt đầu vào đánh thức nào. Theo 5.3.5 từ tài liệu tham khảo ST stm32f105xx , không có thanh ghi nào được bảo tồn ngoại trừ thanh ghi trạng thái cho biết chúng tôi đã thức dậy (nhưng không phải bởi ai) và 42 thanh ghi dự phòng.
Chế độ Chờ cho phép đạt được mức tiêu thụ điện năng thấp nhất. Nó dựa trên chế độ ngủ sâu Cortex ® -M3, với bộ điều chỉnh điện áp bị tắt. Do đó, miền 1.8 V bị tắt nguồn. PLL, bộ dao động HSI và bộ dao động HSE cũng bị tắt. Nội dung SRAM và thanh ghi bị mất ngoại trừ các thanh ghi trong miền Sao lưu và mạch chờ.
Sau khi thức dậy từ chế độ Chờ, thực thi chương trình khởi động lại giống như sau khi Đặt lại (lấy mẫu chân khởi động, đặt lại véc tơ được tìm nạp, v.v.). Cờ trạng thái SBF trong thanh ghi điều khiển / trạng thái Nguồn (PWR_CSR) cho biết MCU ở chế độ Chờ.
Bài đăng trên diễn đàn ST này, Làm thế nào để xác định nguồn gốc của Wakeup từ Chế độ chờ? , gợi ý rằng tôi không thể phát hiện ra sự thức dậy nào được kích hoạt trong phần mềm. Tôi không tìm thấy bài viết nào khác ở đó mà đã khai sáng thêm.
Làm cách nào tôi có thể sử dụng phần mềm hoặc phần cứng để xác định, sau khi thức dậy, đầu vào đánh thức nào được kích hoạt?