图5
五,Main.c 代码:
#include "stm32f4xx_conf.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#define Oppsit(A) (A!=0)?0:1
u8 i, t=0;
u8 str[6][17]={ "红灯亮!!!...rn",
"红亮灭!!!...rn",
"黄灯亮!!!...rn",
"黄亮灭!!!...rn",
"绿灯亮!!!...rn",
"绿亮灭!!!...rn",
};
int main (void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(9600); //串口初始化
LED_Init(); //初始化LED端口 if(USART_RX_STA&0x8000)
while(1)
{
for(i=0; i<6; i++){
PCout((i/2+1))=Oppsit((i%2));
for(t=0;t<16;t++){
USART_SendData(USART1,(u16) str[ i][t]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
delay_ms(500);
}
}
}
六,点击构建工程按钮,编译工程。(如下图6所示)
图6
七,点击窗口左下方仿真按钮,可见红黄绿灯每个0.5s跳闪仿真,USART虚拟串口仿真显示。(如下图7,8,9所示)
图7
图8
图9
八,选择release,点击构建工程按钮,编译工程生成Hex文件。(如下图10所示)
图10
九,笔者准备的是普中F407ZGT6的核心板,通过普中自动下载软件将Proteus VSM Studio生成的Hex文件下载到
开发板上。可见开发板连接的红黄绿灯模块每个0.5s红黄绿灯跳闪,电脑串口将
单片机红黄绿等亮灭情况打印显示。(如下图11,12,13,14所示)
图11
图12
图13
图14
.
附件Proteus8.9 仿真STM32407ZGT6系列基础模板t00在已安装Proteus8.9的计算机文件夹中打开即可。