STM32CubeMX+RTThread 生成Keil5工程

软件信息

STM32CubeMX: V6.0.1

Keil MDK:V5.28

硬件信息

stm32f103c8t6最小系统板

ST-LINK V2

一、使用CubeMX创建一个stm32工程

初始化Debug、时钟

  1. 选择芯片;
  2. Pinout & Configuration标签页中,左侧选择【SYS】,选择【Serial Wire】(SWD);
  3. 选择【RCC】,打开HSE、LSE;
  4. Clock Configuration标签页中,靠中间位置输入框中填入最大时钟频率——72,按回车,OK

配置一个LED灯,生成工程

  1. 配置PC13为Output模式
  2. 选择Project Manager标签页,填写工程信息
  3. 点击右上角【GENERATE CODE】
  4. 添加LED闪烁代码
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    HAL_Delay(500);
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

这样就得到一个LED闪烁工程;

 

二、在CubeMX中添加RealThread包

  1. 打开软件包管理
  2. 点击左下角【From Url】
  3. 点击【new】
  4. 输入:
    1. https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc
    2. 【Check】
    3. 【OK】
  5. 选中,点击OK,开始下载
  6. 等待下载,OK,Close

三、使用RealThread组件

  1. 将RTT添加到工程
  2. 打开RTT功能
  3. RTT 使用的是SYS定时器,与HAL库使用的相同,无关紧要,点击【YES】即可;
  4. 点击右上角【GENERATE CODE】

四、使用RTThread API创建线程

  1. 注释【stm32f1xx_it.c】中【HardFault_Handler】、【SysTick_Handler】(如果有);

  2. 添加头文件

    /* USER CODE BEGIN Includes */
    #include "rtthread.h"
    /* USER CODE END Includes */
  3. 创建线程、启动线程

    /* USER CODE BEGIN 0 */
    void led_task(void *arg)
    {
        while(1)
        {
            rt_thread_mdelay(500);
            HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
        }
    }
    /* USER CODE END 0 */
    
    ...
    
      /* USER CODE BEGIN 2 */
        struct rt_thread led_tid;
        static rt_uint8_t led_stack[512];
    
        rt_err_t result;
    
        result = rt_thread_init(&led_tid, "tled", led_task, RT_NULL,
                                led_stack, sizeof(led_stack), 6, 20);
        RT_ASSERT(result == RT_EOK);
    	
        (void)result;
        rt_thread_startup(tid);
      /* USER CODE END 2 */
  4. 编译,下载

 

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值