|
一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示)
图1
二,调整原理图大小,适合可视,另存工程文件。(如下图2,3,4所示)
图2
图3
图4
三,点击Source Code标签。(如下图5所示)
图5
四,编辑main.c Proteus8.9 VSM Studio Keil编译器仿真RtThread RealTime STD_3.1.3 STM32F103R6_系列011_lcd1602并口 (如下图6所示)
五,Main.c 代码:
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd1602.h"
#include <rtthread.h>
#ifndef RT_USING_HEAP
static struct rt_thread led_thread;
static char led_thread_stack[256];
#else
static rt_thread_t led_thread;
#endif
void SystemClock_Config(void);
static void led_thread_entry(void * parameter) {
while(1) {
LED0=1;
LED1=0;
printf("LED0 ON,LED1 OFF! \r\n");
LClear();
ShowStr(1, 0, " Kaillen Work", 13);
ShowStr(2, 1, "Wellcom YOU!", 12);
delay_us(50000);
LED0=0;
LED1=1;
printf("LED1 ON,LED0 OFF! \r\n");
LClear();
ShowStr(1, 0, " Code Made", 10);
ShowStr(2, 1, "---Ziegler Yin", 14);
delay_us(50000);
}
}
int main(void)
{
RCC_ClocksTypeDef RCC_Clocks; //初始化程序
RCC_Configuration(); //时钟设置
RCC_GetClocksFreq(&RCC_Clocks);
USART1_Init(2400); //串口初始化(参数是波特率)
GPIOSt_Init();
GPIOB->ODR= (0xff<<8);
lcd_init();
LED_Init();
printf("%s", "LED_Initial......\r\n");
#ifndef RT_USING_HEAP
rt_err_t rst;
rst= rt_thread_init(&led_thread,
"ledshine",
led_thread_entry,
RT_NULL,
&led_thread_stack[0],
sizeof(led_thread_stack),
RT_THREAD_PRIORITY_MAX - 2,
20);
if(rst== RT_EOK) {
rt_thread_startup(&led_thread);
}
#else
led_thread= rt_thread_create("ledshine",
led_thread_entry,
RT_NULL,
256,
RT_THREAD_PRIORITY_MAX - 2,
20);
if(led_thread!= RT_NULL) {
rt_thread_startup(led_thread);
}
#endif
while(1) {
rt_thread_mdelay(100);
}
}
六,点击构建工程按钮,编译工程。(如下图6所示)
图6
七,点击窗口左下方仿真按钮,可见虚拟LED显示。 (如下图7,8,9所示)
图7
图8
图9
八,选择release,点击构建工程按钮,编译工程生成Hex文件。(如下图10所示)
图10
附件Proteus8.9 VSM Studio Keil编译器仿真RtThread RealTime STD_3.1.3 STM32F103R6_系列011_lcd1602并口在已安装Proteus8.9的计算机文件夹中打开即可
需要进一步了解,请加入QQ群:976235464
|
评分
-
查看全部评分
|