【FreeRTOS】Arduino开发STM32

这篇具有很好参考价值的文章主要介绍了【FreeRTOS】Arduino开发STM32。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.开发环境(工具)

Vscode 、platformio、arduino、STM32F103C8T6、USB-TTL

引脚连接:STM32直接设置为烧录模式即可,烧录完成后会自动运行程序。

arduino stm32,STM32开发教程,stm32   

1.点灯加串口输出调试

注意事项:每次上传程序前,需要按一下复位键。

#include <Arduino.h>
#define ledPin PC13

HardwareSerial Serial1(PA10, PA9); // 将串口1的管脚指定到PA10(RX),PA9(TX)引脚上
int i = 0;
void setup()
{
  Serial1.begin(115200);
  pinMode(ledPin, OUTPUT);
}

void loop()
{
  digitalWrite(ledPin, HIGH);
  delay(500);
  digitalWrite(ledPin, LOW);
  delay(500);
  Serial1.println(i++);
}

platformio.ini文件配置

[env:genericSTM32F103C8]
platform = ststm32
board = genericSTM32F103C8
framework = arduino
upload_port = COM17
monitor_port = COM17
monitor_speed = 115200
upload_protocol = serial

2.FreeRTOS开发STM32

添加相关库函数

arduino stm32,STM32开发教程,stm32

测试程序:板载LED闪烁,同时进行串口输出

#include <Arduino.h>
#include <STM32FreeRTOS.h>
#define ledPin PC13

HardwareSerial Serial1(PA10, PA9); // 将串口1的管脚指定到PA10(RX),PA9(TX)引脚上
int i = 0;

void test1(void *pt)
{
  pinMode(ledPin, OUTPUT);
  while (1)
  {
    digitalWrite(ledPin, HIGH);
    vTaskDelay(100);
    digitalWrite(ledPin, LOW);
    vTaskDelay(100);
    Serial1.println(i++);
  }
}

void setup()
{
  Serial1.begin(115200);

  xTaskCreate(test1, "", 1024, NULL, 1, NULL);
  vTaskStartScheduler(); // 开启任务调度,这条语句必须加,否则程序无法正常执行
  vTaskDelete(NULL);
}

void loop()
{
}

 vTaskStartScheduler()的作用

vTaskStartScheduler()是FreeRTOS实时操作系统中的一个函数,它的作用是启动任务调度器在FreeRTOS中,任务调度器负责按照任务的优先级和调度策略来调度任务的执行

具体而言,vTaskStartScheduler()函数会初始化FreeRTOS的内部数据结构,并开始任务调度器的运行。一旦调用了该函数,任务调度器会按照任务的优先级和调度策略开始调度任务的执行。它会根据每个任务的优先级,以抢占或协作的方式分配处理器时间片给不同的任务,从而实现任务的并发执行。

vTaskStartScheduler()函数通常是在系统初始化过程的最后被调用,它标志着系统进入多任务运行状态。在调用该函数之前,需要先创建并初始化好各个任务,并设置好任务的优先级。

需要注意的是,vTaskStartScheduler()函数是一个永不返回的函数,一旦任务调度器开始运行,它将控制整个系统的执行,直到发生严重错误或调用了特殊的函数来停止任务调度器的运行。

总结起来,vTaskStartScheduler()函数的作用是启动FreeRTOS任务调度器,让各个任务按照优先级和调度策略并发执行文章来源地址https://www.toymoban.com/news/detail-612206.html

到了这里,关于【FreeRTOS】Arduino开发STM32的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARDUINO STM32 SSD1306

    STM32F103XX系列SPI接口位置 在ARUDINO 下,(不需要设置引脚功能,不需要开启时钟设置,ARDUINO已经帮我们处理了) stm32f103c6t6 flash不足,不足以运行U8G2,产生错误(STM32F103C8T6 FLASH ram足够,直接运行示列) 改用U8X8,后将字体改为u8x8_font_artosserif8_n ,可以简单程序 使用U8X8可以显示

    2024年02月10日
    浏览(24)
  • arduino、STM32和树莓派了解

    一、arduino 1、什么是arduino Arduino是一款便捷灵活、方便上手的开源电子原型平台。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序        arduino是一类单片机、开发板

    2024年02月03日
    浏览(24)
  • 初试STM32基于Arduino的使用

      系列文章列表 一、初试STM32基于Arduino的使用 二、初试STM32基于Arduino的使用(第二集) Arduino的板子虽然有国内的兼容板子,但最终价格也要在40+(意大利原产的就要100+了)。虽然也已经不贵了,但是如果一个方案里用的板子多了,整体成本也是在那里的。况且谁又不希望

    2024年02月03日
    浏览(31)
  • Arduino、STM32、树莓派的对比

    Arduino使用C/C++,STM32最常使用C语言,树莓派支持多种编程语言,但最常使用python。 Arduino开发难度和学习难度较低,开发者只需要通过简单学习,了解各个引脚和函数的作用,便可利用它开发出各种出色的项目。 STM32需要更深入的理解和掌握,通常需要具备一定的编程和电子

    2024年02月07日
    浏览(29)
  • Arduino ESP32开发环境搭建入门教程,esp32的arduino开发环境搭建教程,arduino导入eps32开发插件

    从官网下载 Arduino IDE 软件并安装。下载链接:Software | Arduino 网盘链接:链接:https://pan.baidu.com/s/1ZuSbo1BPy8XyyXzfl4KNzg?pwd=f8yd 提取码:f8yd 1、找到Arduino IDE安装目录,打开hardware文件夹。 2、在hardware文件夹中创建一个espressif文件夹。 3、将解压出的文件夹移动到espressif文件夹中,

    2024年02月13日
    浏览(42)
  • 关于Arduino、STM32、树莓派的介绍与区别

    Arduino: Arduino开发板本着让用户简单使用而且开源的设计理念,具有灵活便捷、入手门槛低、同时具有丰富接口、多功能、易扩展等优点,因此在电子设计领域应用较广。目前市场上Arduino开发板的种类非常多,如Arduino UNO/UNO R3,Arduino101/Intel Curie,Arduino Micro,Arduino Ethernet,

    2024年02月01日
    浏览(37)
  • 舵机,模拟舵机,数字舵机(arduino,stm32f103代码开源)

     舵机是一种常见的伺服电机,主要用来控制角度的变化。常见的sg90舵机组成结构如下: 舵机组成图 ​ sg90是模拟舵机,除了模拟舵机外,还有数字舵机,他们的控制区别如下 模拟舵机和数字舵机的控制区别  模拟舵机和数字舵机的机械结构一样;硬件方面数字舵机多了一

    2024年02月05日
    浏览(40)
  • STM8低门槛快速入门,类似Arduino封装库模式开发介绍

    📌STM8外设封装库原项目开源地址: https://github.com/gicking/STM8_templates 📍个人整理过的项目地址: https://github.com/perseverance51/STM8-Templates 🏳‍🌈说明:类似Arduino封装库,并不是在Arduino平台来开发STM8。开发模式是基于SDCC和STVD环境的。编译速度是Arduino开发环境没法比的。 📓STM

    2024年02月12日
    浏览(26)
  • 基于STM32的实时操作系统FreeRTOS移植教程(手动移植)_stm32移植freertos(1)

    直接意识代码: 这是我们大脑最希望的添加代码方式,很显然他是 错的 , 两个任务之间产生了相互的影响 ,使得两个任务都执行错误,这种思想在 裸机开发 中肯定是 错的 ,但是在我们的 RTOS 中他就可以是 对的 。 任务型代码: 这是 独立的两个任务内容 ,我们只需要把

    2024年04月10日
    浏览(88)
  • STM32FreeRTOS任务通知(STM32cube高效开发)

    1、任务通知可模拟队列和信号量 任务通知是FreeRTOS另外一种进程间通信技术。不需要创建任何中间对象,可以直接从任务向任务或ISR向任务发送通知,传递一个通知值任务通知可以模拟二值信号量、计数信号量、或长度为1的消息队列,使用任务通知,一般效率更高,消耗内

    2024年03月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包