单片机源程序如下:
- #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)
|