Keil模拟器 STM32F103上手指南学习笔记

RT-Thread系列

RT-Thread Studio快速上手

RT-Thread Nano入门学习笔记(1)

RT-Thread Nano入门学习笔记(2)

项目实战:快速打造一个桌面mini网络时钟

使用内置Git插件管理项目

一、准备工作(已完成)

完成证明如下
MDK-ARM 5.27(正式版或评估版,5.14 版本及以上版本均可)

在这里插入图片描述

在这里插入图片描述

已下载安装 STM32F103 pack 文件:

在这里插入图片描述

二、初识RT-Thread(已完成)

完成证明如下:

1、已下载好RT-Thread Simulator例程

在这里插入图片描述

2、仿真模拟后进入UART#1窗口,分别输入version、help等命令

在这里插入图片描述

3、系统启动代码及其用户入口代码

(1)系统启动代码

int $Sub$$main(void)
{
    rt_hw_interrupt_disable();
    rtthread_startup();
    return 0;
}

通过视频学习,我了解到$sub$$是MDK的一个扩展功能,通过这个扩展功能系统中可以出现两个main函数,而$sub$$main()是真正的main函数。

(2)用户入口代码

int main(void)
{
  /* user app entry */
  return 0;
}

由于$sub$$main()函数可以让用户不用去管 main() 之前的系统初始化操作,而直接在main函数里实现用户需要完成的功能代码编写。

4、在UART#1 中输入 msh 命令:led 实现跑马灯

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUuHMdsA-1625103340247)(C:\Users\xiaoyan\AppData\Roaming\Typora\typora-user-images\image-20210618173932060.png)]

5、对RTOS的初步认识

  • RTOS,即实时操作系统,实时,也就是当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。

在这里插入图片描述

(1)多路性。实时信息处理系统与分时系统一样具有多路性。系统按分时原则为多个终端用户服务;而对实时控制系统,其多路性则主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。

(2)独立性。实时信息处理系统与分时系统一样具有独立性。每个终端用户在向分时系统提出服务请求时,是彼此独立的操作,互不干扰;而在实时控制系统中信息的采集和对对象的控制,也彼此互不干扰。

(3)及时性。实时信息系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级、百毫秒级直至毫秒级,甚至有的要低于100微秒。

(4)交互性。实时信息处理系统具有交互性,但这里人与系统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理服务、资源共享等服务。

(5)可靠性。分时系统要求系统可靠,相比之下,实时系统则要求系统高度可靠。因为任何差错都可能带来巨大的经济损失甚至无法预料的灾难性后果。因此,在实时系统中,采取了多级容错措施来保证系统的安全及数据的安全。

  • 最大中断禁止时间和任务切换时间是评价一个RTOS实时性最重要的两个技术指标。下面是RTOS的基本概念:

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
你好!要在Keil5使用STM32F103来实现流水灯,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Keil5软件,并且已经正确配置了STM32F103的开发环境。 2. 创建一个新的Keil项目。选择 "Project" -> "New uVision Project"。 3. 在弹出的对话框,选择一个适合你的项目名称和保存路径,然后点击 "Save"。 4. 在 "Device" 选项卡,选择你使用的STM32F103芯片型号。 5. 点击 "OK" 创建项目。 6. 在 "Project" 窗口,右键点击 "Source Group 1",选择 "Add New Item to Group 'Source Group 1'"。 7. 在弹出的对话框,选择 "C Source File",输入一个适合的文件名(比如 "main.c"),然后点击 "Add"。 8. 在 "main.c" 文件,添加以下代码: ```c #include "stm32f10x.h" GPIO_InitTypeDef GPIO_InitStructure; int main(void) { // 初始化LED的GPIO引脚 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); while (1) { // 点亮LED GPIO_SetBits(GPIOC, GPIO_Pin_13); // 延时一段时间 delay(1000000); // 熄灭LED GPIO_ResetBits(GPIOC, GPIO_Pin_13); // 延时一段时间 delay(1000000); } } void delay(uint32_t count) { for (uint32_t i = 0; i < count; i++); } ``` 9. 编译并下载代码到STM32F103开发板上。 以上代码使用了GPIOC的引脚13作为LED控制引脚,通过不断点亮和熄灭LED来实现流水灯效果。你可以根据需要修改代码的延时时间和引脚配置。 希望这能帮到你!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是彦歆呀嘻嘻哈哈

你的鼓励将是我的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值