單片機源程序如下:
- #include "stm32f10x.h"
- #include "delay.h"
- #include "iwtdog.h"
- #include "led.h"
- #include "sys.h"
- #include "timer3.h"
- #include "usart1.h"
- #include "usart2.h"
- #include "usart3.h"
- uint16_t main_timer3_value = 100U;//100ms定時 該值必須比下面點亮熄滅時間小。
- //Led1 異常燈
- uint16_t main_led1_on_time = 200U;//LED1一個閃爍周期內的點亮時間
- uint16_t main_led1_off_time = 200U;//LED1一個閃爍周期內的熄滅時間
- uint8_t main_led1_cycle_count = 1U;//LED1一個周期內只閃爍一次
- //Led2 正常燈
- uint16_t main_led2_on_time = 200U;//LED2一個閃爍周期內的點亮時間
- uint16_t main_led2_off_time = 200U;//LED2一個閃爍周期內的熄滅時間
- uint8_t main_led2_cycle_count = 1U;//LED2一個周期內只閃爍一次
- int main(void)
- {
- Timer3InitMs(main_timer3_value);
- LedInit(main_timer3_value);
- Usart1Init();
- Usart2Init();
- Usart3Init();
-
- IwtdogInit(7U,500U); //與分頻數為128*4,重載值為500,溢出時間為16s
-
- Interrupt_enable();
- while(1)
- {
- //喂狗
- IwtdogClear();
- //串口1處理
- Usart1AnalysisHandle();
- Usart2AnalysisHandle();
- if((Usart1CheckRxFlag() == 1U) && (Usart2CheckRxFlag() == 1U))//異常
- {
- Led_BlueOnFrq(main_led1_on_time,main_led1_off_time,main_led1_cycle_count);
- }
- else
- {
- Led_RedOnFrq(main_led2_on_time,main_led2_off_time,main_led2_cycle_count);
- }
-
- //定時器
- if(Timer3FlagStatus() == 1U)
- {
- Timer3StatusFlagClear();
- Led_BlueTimeInt();
- Led_RedTimeInt();
- }
- }
- return 0U;
- }
復制代碼
所有資料51hei提供下載:
0_STM32F103RCT6_V0.2.rar
(323.98 KB, 下載次數: 58)
2018-6-14 22:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|