Ardunio 使用STM32实作

  • 简   介
  • 一.项目说明
  • 二.安装 Ardunio IDE 和相关软件支持库
  • 1)安装
  • 2)配置
  • 三.实战过程(在Ardunio 完成STM32板子的串口通信程序:1)持续向串口输出“Hello world!”;2)当接收到“stop!”时,停止输出。)
  • 1)写程序
  • 2)编译烧录
  • 3)串口观察
  • 四. 结语


简   介

Arduino IDE开发的优点是更简单,易用,上手,适合新手使用。缺点是省去了更多代码配置环节,不便于底层理解。但这不影响Arduino IDE开发的强大性,一般情况下开发板实现相同的功能,Arduino IDE开发比keil开发使用更少的代码就能实现,这一点有点类似编程界的Python与其他编程语言的对比吧。想在底层方面了解更多,如亲自操作开发板寄存器的话,建议还是使用keil+库函数开发吧。

一.项目说明

1.安装 Ardunio IDE 和相关软件支持库,
2.在Ardunio 完成STM32板子的串口通信程序:

1)持续向串口输出“Hello world!”。
2)当接收到“stop!”时,停止输出。

二.安装 Ardunio IDE 和相关软件支持库


  为了方便读者配置Arduino IDE开发STM32F10X的环境,我已经将要用到的资源文件打包放在百度网盘了。 链接: https://pan.baidu.com/s/1kqpP1YGKtY2WRz9GNT0Z7w 提取码: q251 需要用的工具: 1.USB转TTL(没有的话可以去淘宝买一个,大约5块钱一个) 2.STM32F10X开发板 我的是STM32F103ZET6

1)安装

一、先安装好Arduino IDE
双击arduino-1.8.12-windows.exe正常安装,一直按默认方式安装下去就行。

esp32 uart中断函数 esp32 arduino串口中断_stm32

2)配置

将打包文件中的Arduino_STM32整个文件夹拷贝到Arduino IDE安装目录下的hareware下,我这里是C:\Program Files (x86)\Arduino\hardware。这些配置文件是一位国外大佬写的,他的最新配置文件在github网站https://github.com/rogerclarkmelbourne/Arduino_STM32上。

esp32 uart中断函数 esp32 arduino串口中断_stm32_02


添加开发板

esp32 uart中断函数 esp32 arduino串口中断_esp32 uart中断函数_03


安装

esp32 uart中断函数 esp32 arduino串口中断_esp32 uart中断函数_04


烧写

注意开发板的TXD是与USB转TTL工具的RXD相连。我们使用的是野火指南者,所以我们可以直接用usb线连接,然后将STM32开发板上的BOOT0用短路冒接入高电平1,BOOT1用短路冒接入低电平0.

esp32 uart中断函数 esp32 arduino串口中断_stm32_05


打开烧录程序,这个程序在我们的文件里有,直接点击安装打开

esp32 uart中断函数 esp32 arduino串口中断_串口_06

esp32 uart中断函数 esp32 arduino串口中断_esp32 uart中断函数_07


选择合适的驱动程序

esp32 uart中断函数 esp32 arduino串口中断_stm32_08


完成

esp32 uart中断函数 esp32 arduino串口中断_stm32_09

三.实战过程(在Ardunio 完成STM32板子的串口通信程序:1)持续向串口输出“Hello world!”;2)当接收到“stop!”时,停止输出。)

1)写程序

这是博主写的一个简单串口通信的程序

int i=0,hcr=0;
 char stop[]={'S','t','o','p',',','s','t','m','3','2'};
char comdata[100];//声明字符串变量
 
void setup() 
{
  Serial.begin(9600);      //设定的波特率
}
 
void loop() 
{  Serial.println("Hello world!\n\n");
   delay(1000);
   while (Serial.available() > 0)  
    {   
        comdata[i]= char(Serial.read());
         if(comdata[i]==stop[i]) hcr++;
        i++;
        delay(2);
        if(hcr>9)
        while(1);
    
    }
   i=0;
  
}

2)编译烧录

注意每次烧写程序时必须先按一次复位键,不然写不进去

esp32 uart中断函数 esp32 arduino串口中断_串口_10


成功写入

esp32 uart中断函数 esp32 arduino串口中断_arduino_11

3)串口观察

esp32 uart中断函数 esp32 arduino串口中断_arduino_12


我们看到串口持续输出“Hello world!”。直到当接收到“stop,stm32!”时,停止输出。

esp32 uart中断函数 esp32 arduino串口中断_esp32 uart中断函数_13