|
一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
圖1
二,調(diào)整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)
圖2
圖3
圖4
三,點(diǎn)擊Source Code標(biāo)簽。(如下圖5所示)
圖5
四,編輯main.c Proteus8.9 VSM Studio Keil編譯器仿真RtThread RealTime STD_3.1.3 STM32F103R6_系列001_跑馬燈 (如下圖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亮,LED1滅 !\r\n");
//HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_RESET);
//HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5, GPIO_PIN_SET);
rt_thread_mdelay(500);
LED0=0;
LED1=1;
printf("LED1亮,LED0滅 !\r\n");
//HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5, GPIO_PIN_RESET);
//HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_SET);
rt_thread_mdelay(500);
}
}
int main(void)
{
RCC_ClocksTypeDef RCC_Clocks; //初始化程序
RCC_Configuration(); //時(shí)鐘設(shè)置
RCC_GetClocksFreq(&RCC_Clocks);
USART1_Init(2400); //串口初始化(參數(shù)是波特率)
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);
}
}
六,點(diǎn)擊構(gòu)建工程按鈕,編譯工程。(如下圖6所示)
圖6
七,點(diǎn)擊窗口左下方仿真按鈕,可見虛擬LED顯示。 (如下圖7,8,9所示)
圖7
圖8
圖9
八,選擇release,點(diǎn)擊構(gòu)建工程按鈕,編譯工程生成Hex文件。(如下圖10所示)
圖10
附件Proteus8.9 VSM Studio Keil編譯器仿真RtThread RealTime STD_3.1.3 STM32F103R6_系列001_跑馬燈在已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可
需要進(jìn)一步了解,請(qǐng)加入QQ群:976235464
|
評(píng)分
-
查看全部評(píng)分
|