Arduion-STM32

news2024/11/15 11:10:15

 Arduion-STM32

stm32duino 让stm32 在arduino中使用

源代码:GitHub - stm32duino/Arduino_Core_STM32: STM32 core support for Arduino

busybox文件位置   stm32duino 下有个stm32tool 项目,内含有busybox.exe

使用usb转TTL烧写

使用 PA9 PA10 端口

PA9接 RX ,PA10接 TX ,3.3接 STM32板子的3.3V(面包板上发现5V更稳定,有时3.3无法上传),GND接GND

usb 转ttl  TX->PA10 RX ->PA9 GND->GND 3.3V ->3.3V 

指定串口管脚用法示例
使用ST官方Arduino库,可在STM32全系列开发板上进行如下实验。

注意:实例化串口对象需要加数字编号(Serialx中的x是串口编号,取值是1,2……):

HardwareSerial Serialx(PA10, PA9);  //将Serialx(x=1-4)串口x的管脚,一定要带编号,如:Serial1
强调一下:不能实例化默认的串口:HardwareSerial Serial(PA10, PA9)
 

原文链接:https://blog.csdn.net/qcmyqcmy/article/details/128393652

#include <HardwareSerial.h>

HardwareSerial Serial1(PA10,PA9);

void setup() {

  Serial1.begin(115200);

 pinMode(PC13, OUTPUT);

 Serial1.println("hello");

}

// the loop function runs over and over again forever

void loop() {

 Serial2.println("hello world");

 digitalWrite(PC13, HIGH);  // turn the LED on (HIGH is the voltage level)

 delay(100);       // wait for a second

 digitalWrite(PC13, LOW);  // turn the LED off by making the voltage LOW

 delay(100);       // wait for a second

 Serial1.println("hello world");

}

#include <HardwareSerial.h>

HardwareSerial Serial1(PA10,PA9);

typedef unsigned int time_count;

typedef unsigned int State;

void setup() {

  // put your setup code here, to run once:

  Serial1.begin(115200);

  pinMode(PA2,OUTPUT);

  pinMode(PB6,OUTPUT);

  Serial1.println("hello");

}

  time_count tc0 = 0;

  time_count tc1 = 0;

  time_count tc2 = 0;

  State state2 = 0;

  bool bl1 = 0;

  int data = 0;

void loop() {

  // put your main code here, to run repeatedly:

  tc0 = tc0 +1;

  delay(1);

  //fly delay(20)

  if(tc0 % 20 == 0)

  {

    tc1 = tc1+1;

  }

  if(tc1 > 50 )

  {

   

    bl1 = !bl1;

    digitalWrite(PA2,bl1);

    digitalWrite(PB6,!bl1);

    tc1 = 0;

  }

  //breath  0->10 -> 0 silm 50  delay(100);

  if( tc0 % 100 == 0)  //wait delay 50

  {

    tc2 = tc2 +1;

  if(tc2 <= 10)

  {

    state2 = 0;

    data = data +1;

  }

  else if(tc2 < 20 )

  {

    state2 = 1;

    data = data -1;

  }

  else if(tc2 < 70 )

  {

    state2 = 3;

    data = 0;

  }

  else

  {

    state2 = 0;

    tc2 = 0;

  }

  Serial1.println(data);

  analogWrite(PA3,data);

  }

}

stm32 arduino -2023-7-11

关闭杀毒软件或放入白名单,可以解决大部份问题

 记录一下arduino ide 使用stm32的过程

如有冒犯,敬请告之,侵删

网上很多教程,可以用的,并且通过编辑实现了的配置板支持包,使用Arduino IDE对STM32全系列芯片编程_arduino_stm32库_笑春风oO的博客-CSDN博客

感谢博主提供的下载程序

链接:https://pan.baidu.com/s/171KNtN7ltdfYgnKYrO433w 
提取码:r8ky

下载后 joson 放在 c:\users\用户名\appdata\arduino 

其它放在  C:\Users\用启名\AppData\Local\Arduino15\staging\packages下

记得重起

下载程序 

使用 usb转 ttl (ch340)芯片

usb 转ttl  TX->PA10 RX ->PA9 GND->GND 3.3V ->3.3V 

使用boot0 = 1 boot1 = 0;

下载完成后 boot0 = 0 下次启动才可自动,否则不启动下载程序

blink 程序

void setup() {
 
  pinMode(PC13, OUTPUT);
 
  Serial.begin(115200);
 
}
 
// the loop function runs over and over again forever
 
void loop() {
 
  digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
 
  delay(1000);              // wait for a second
 
  digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
 
  delay(1000);              // wait for a second
 
  Serial.println("hello world");
 
}

说明: https://img-blog.csdnimg.cn/cf571673de9446119019b738f786af9a.png

​编辑

使用网上最近的教程,从github 下载安装包,安装后,无法通过编辑,或出现错误

由于时间久,没人维护,出现错误

出现问题

踏过的坑

包括下载 stm32 cube programmer 

从github 下载安装包,安装

开发板管理 arduino sam boards m3+....

1.github下载安装包置入 packages 后 开发板管理 下载 arduino ---------无效,产生错误

2.网上最新教程,------无效

3 stm32 cube program -无效 ,安装失败

错误1. busybox.exe 找不到  (下载 stm32duino 下有个stm32tool 项目,内含有busybox.exe)

STM32 Project Won't Build Due To Path Issue - #3 by spcplugins - IDE 2.x - Arduino Forum

按照上面的方法,无法解决问题,并且国内无法下载

错误2 .STM32 Project Won't Build Due To Path Issue - #3 by spcplugins - IDE 2.x - Arduino Forum

御载 arduino sam boards (..... corel - m3)

最后如果

学习stm32的话,还是推荐去正点原子 虽然贵点,资料,板子全

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1134088.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux cd命令:切换目录

cd 命令&#xff0c;是 Change Directory 的缩写&#xff0c;用来切换工作目录。Linux 命令按照来源方式&#xff0c;可分为两种&#xff0c;分别是 Shell 内置命令和外部命令。 所谓 Shell 内置命令&#xff0c;就是 Shell 自带的命令&#xff0c;这些命令是没有执行文件的&a…

VulnHub Tre

一、信息收集 1.nmap扫描 发现开发端口&#xff1a;22、80、8082 访问80和8082端口&#xff0c;没有发现什么有价值的信息 2.扫描目录 dirsearch扫描目录 ┌──(root&#x1f480;kali)-[~/routing/dirsearch-] └─# python3 dirsearch.py -u "http://192.168.103.1…

sudo apt update 后会出现的一堆问题的解决

于是&#xff0c;我选择卸载CUDA &#xff1a; 采用的方法是&#xff1a; cd /usr/local/cuda-11.4/bin/ sudo ./cuda-uninstaller sudo rm -rf /usr/local/cuda-11.4 然后重新下载CUDA&#xff1a; 下载的时候注意&#xff1a; 首先选择下载对应的版本&#xff0c;如果还…

C++基础语法——智能指针

目录 1.智能指针存在的意义 2.内存泄漏 ①什么是内存泄漏&#xff0c;内存泄漏的危害 ②内存泄漏分类 ③如何检测内存泄漏 ④如何避免内存泄漏 3.智能指针的使用及其模拟实现 ①RAII ②智能指针的原理 ③std::auto_ptr 模拟实现 ④std::unique_ptr 模拟实现 ⑤st…

【目标跟踪】ECO算法论文阅读:ECO: Efficient Convolution Operators for Tracking

文章目录 1. 论文概要2. 研究背景和动机3. 相关滤波用于目标跟踪的原理4. ECO算法流程5. ECO算法创新点5.1 特征降维&#xff1a;PCA5.2 训练集简化&#xff1a;GMM5.3 模型更新策略&#xff1a;间歇更新 1. 论文概要 论文下载地址&#xff1a;ECO: Efficient Convolution Oper…

UG\NX二次开发 设置对象的高亮状态 UF_DISP_set_highlight

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 感谢粉丝订阅 感谢 2301_79203630 订阅本专栏,非常感谢。 简介 UG\NX二次开发 设置对象高亮状态 UF_DISP_set_highlight 效果 代码 #include "me.hpp"extern DllEx…

Redis数据库管理工具Redis Desktop Manager最新中文

Redis Desktop Manager是一款直观且易用的Redis数据库管理工具&#xff0c;支持Windows、macOS和Linux等多平台。它提供了丰富的功能和工具&#xff0c;使用户可以轻松地创建、编辑、删除和浏览Redis键值对&#xff0c;并执行各种Redis命令。通过SSH Tunnel连接&#xff0c;RDM…

信号浪涌保护器的行业应用和原理与分类解决方案

什么是信号浪涌保护器 信号浪涌保护器是一种电子设备&#xff0c;它可以保护信号线路上的仪器、设备或系统免受雷击或其他瞬态过电压的损害。 信号浪涌保护器的主要原理是将线路上产生的高压浪涌&#xff0c;泄放到大地&#xff0c;将其限制到被保护对象可以耐受的范围内&…

【博士每天一篇文献-算法】Overcoming catastrophic forgetting in neural networks

阅读时间&#xff1a;2023-10-24 1 介绍 年份&#xff1a;2016 作者&#xff1a;James Kirkpatrick, Razvan Pascanu, Neil Rabinowitz, Joel Veness, Guillaume Desjardins, Andrei A. Rusu, Kieran Milan, John Quan, Tiago Ramalho, Agnieszka Grabska-Barwinska, Demis H…

js实现在报表参数界面获取body中控件的值

要在报表参数界面获取body中控件的值&#xff0c;你可以使用JavaScript来实现。下面是一个详细的介绍&#xff1a; 1. DOM&#xff08;文档对象模型&#xff09;&#xff1a; - DOM是用于操作HTML文档的API&#xff0c;它允许你通过JavaScript访问和操作文档中的元素。 - 在报…

python由0到1的基础第一篇(基础语法、变量类型、运算符)

文章目录 前言编程语言是什么&#xff1f;编译型语言和解释型语言的区别编译型语言解释型语言编译型语言和解释型语言的差异总结 一、Python是什么&#xff1f;Python简介1.1Python是什么&#xff1f;1.2Python简介1.2.1Python优点1.2.2Python的缺点 二、Python能干什么&#x…

iview form 动态表单

最开始用得网上得 <FormItemlabel"采购方开户行":rules"baseForm.receiptType 12? baseInfoRule.procureBank: [{ required: false }]"><Inputv-model"baseForm.procureBank"placeholder"请输入采购方开户行"style"w…

RISC-V架构——中断处理和中断控制器介绍

1、ARM架构中断机制介绍 本文不是从零开始讲解中断&#xff0c;对于中断的基本知识不再赘述&#xff0c;对中断不是很了解可以先学习ARM中断的文章。参考博客&#xff1a;《ARM架构的外部中断介绍(S5PV210芯片)》&#xff1b; 2、RIAC_V架构的中断控制器架构 &#xff08;1&…

如何运用设计模式中的享元模式

文章目录 &#x1f31f; 如何将设计模式中的享元模式运用到生活当中&#x1f34a; 什么是享元模式&#x1f34a; 生活中的应用&#x1f389; 衣物&#x1f389; 图书馆 &#x1f34a; 总结 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博…

WORD中的表格内容回车行距过大无法调整行距

word插入表格&#xff0c;编辑内容&#xff0c;换行遇到如下问题&#xff1a; 回车后行距过大&#xff0c;无法调整行距。 解决方法&#xff08;并行&#xff09;&#xff1a; 方法1&#xff1a;选中要调整的内容&#xff0c;菜单路径&#xff1a;“编辑-清除-格式” 方法2&am…

Unity3D 基础——WASD控制物体移动

using System.Collections; using System.Collections.Generic; using UnityEngine;public class MotionControl : MonoBehaviour {public float speed 3f; //定义一个速度// Start is called before the first frame updatevoid Start(){}// Update is called once per fram…

一文读懂MT4:从小白到专家,MT4教程全解析!

亲爱的读者&#xff0c;欢迎来到这篇全面解析MT4交易平台的文章。无论你是刚刚接触金融交易&#xff0c;还是已经有一定经验的投资者&#xff0c;这篇文章都将为你提供深入浅出的MT4使用指南。通过阅读本文&#xff0c;你将能够全面了解并掌握MT4交易平台的使用技巧和操作方法。…

JAVA 链式编程和建造者模式的使用(lombok的使用)

0.说明 0.1 链式编程 链式编程的原理是返回一个this对象&#xff0c;也就是返回对象本身&#xff0c;从而达到链式效果。这样可以减少一些代码量&#xff0c;是java8新增的内容。 此处主要介绍在新建对象使用链式编程更加方便的创建对象。链式编程的一些常见用法可以看这个&a…

使用scapy 分析报文

比wireshark 更 happy udp 就简易的多&#xff0c;tcp 可能在设置bpf 时 多加几个条件 由于协议分析是手写的,所以可以对数据包的交互记录到excel 中再次进行分析

2024年天津中德应用技术大学专升本物流管理专业课考试大纲

天津中德应用技术大学物流管理专业&#xff08;高职升本科&#xff09;2024年专业基础考试大纲 一、试卷类型 物流管理专业升本专业课考试共1套试卷&#xff0c;总分200分&#xff0c;考试时间为2小时。内容包含仓储与配送管理40%、物流基础30%&#xff0c;运输管理30%&#…