實驗軟件設計
1、外部中斷檢測急停按鍵:流程圖和程序(包括主函數中主要程序片段和中斷服務函數源文件)。
2、定時驅動 LED 提示報警閃爍:流程圖和程序(包括主函數中主要程序片段和中斷服務函數源文件)。
3、利用串口傳輸信息到 PC 機:流程圖和程序(包括主函數中主要程序片段和中斷服務函數源文件)。
4、綜合各模塊功能,通過外部中斷檢測急停按鈕狀態,利用串口傳輸信息到 PC 機,同時實現警示 LED 閃爍和繼電器輸出控制;即實現工業急停模擬系統功能:
(1 )未按下緊急按鍵時,將正常運行信息通過串口發生至上位機;警示 LED常亮;
(2 )當按下緊急按鍵時,警示 LED 定時閃爍;將急停信息通過串口發生至上位機;并將輸出控制的繼電器切斷(可用 LED 代替)。設計流程圖和程序(包括主函數中主要程序片段和中斷服務函數源文件)
單片機源程序如下:
- /*
- STM32 開發板 庫函數部分 */
- // 中斷實驗 通過外部中斷線 到 按鍵 PA.0 PD.2上 并配置為下降沿觸發 具體設置在exti.c中
- //按鍵按下則產生中斷 PA.0(S4)產生中斷 控制板載LED亮 PD.2(S3)產生中斷 控制板載LED滅
- //并且串口 也將不停的打印數據 以表示程序正在運行
- #include "delay.h"
- #include "led.h"
- #include "key.h"
- #include "usart.h"
- #include "exti.h"
- int main(void)
- {
- delay_init(); //延時函數初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組為組2 2:2位搶占優先級,2位響應優先級
- //一旦定義 即不要輕易改變
- uart_init(9600); //串口初始化為9600
- LED_Init(); //初始化與LED連接的硬件接口
- KEY_Init(); // 按鍵端口初始化
- EXTIX_Init(); //外部中斷初始化
-
- while(1)
- {
- printf("ELH 啟光電子\r\n");
- delay_ms(1000);
- }
- }
復制代碼
原理圖: 無
仿真: 無
代碼:
STM32F103C8T6 外部中斷程序.7z
(182.34 KB, 下載次數: 16)
2023-10-20 22:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|