文章目录
- 安装 Arduino IDE
- 烧录程序
- 基于标准库函数与基于HAL库函数的stm32编程方式的差异
- Stduino IDE 与Ardunio IDE的比较
板子为stm32指南者开发板
安装 Arduino IDE
从网上下载安装包
配置
将复制的文件拷贝到arduino的安装路径下hardware中
接入开发板,开发板的连接如下:
打开arduino,此时里面已经有了stm32指南者开发板了,选择Generic STM32F103V series,打开开发板管理器
配置好后细节如下:
烧录程序
int flag=1;
char Stop[]="stop\n";
void setup() {
//初始化
pinMode(PB0, OUTPUT);//PB0为绿色,PB1为蓝色,PB5为红色,可根据需要改动
Serial.begin(115200);
}
void loop() {
int i=0,flag_s=0;
char inByte[50];
digitalWrite(PB0, HIGH); //小灯亮
delay(500); // 延迟
digitalWrite(PB0, LOW); //小灯灭
delay(500); // 延迟
while (Serial.available()> 0) //当发送缓冲区有数据时
{
inByte[i] = Serial.read(); //从串口的缓冲区取出并读取一个Byte的数据
delay(10);
i++ ;
}
if(Stop[i]=inByte[i])
{
if(Stop[i-1]==inByte[i-1]&&Stop[i-2]==inByte[i-2]&&Stop[i-3]==inByte[i-3])
{
flag=0;
Serial.println("收到!");
}//当收到stop命令时停止并回复收到
}
if(flag==1)
{
Serial.println("Hello World!");//向串口发送数据
delay(100); // 延迟
}
}
在左上角工具栏选择相应的端口,然后依次点击左上方的验证,上传。(注意每一次烧录文件前一定要按开发板上的RESET按钮)
上传成功后,开发板灯亮
打开工具中的串口监视器可观察运行效果(波特率设为115200)
基于标准库函数与基于HAL库函数的stm32编程方式的差异
基于寄存器会对寄存器进行一堆定义
#define GPIOC_CRL *(unsigned int*)(GPIOC_BASE+0x00)
#define GPIOC_CRH *(unsigned int*)(GPIOC_BASE+0x04)
#define GPIOC_IDR *(unsigned int*)(GPIOC_BASE+0x08)
#define GPIOC_ODR *(unsigned int*)(GPIOC_BASE+0x0C)
#define GPIOC_BSRR *(unsigned int*)(GPIOC_BASE+0x10)
#define GPIOC_BRR *(unsigned int*)(GPIOC_BASE+0x14)
#define GPIOC_LCKR *(unsigned int*)(GPIOC_BASE+0x18)
基于固件库则会对函数进行设定
void LED_GPIO_Config(void)
{
/*定义一个GPIO_InitTypeDef类型的结构体*/
GPIO_InitTypeDef GPIO_InitStructure;
/*开启LED相关的GPIO外设时钟*/
RCC_APB2PeriphClockCmd( LED1_GPIO_CLK | LED2_GPIO_CLK , ENABLE);
/*选择要控制的GPIO引脚*/
GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN;
/*设置引脚模式为通用推挽输出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*设置引脚速率为50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数,初始化GPIO*/
GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);
/*选择要控制的GPIO引脚*/
GPIO_InitStructure.GPIO_Pin = LED2_GPIO_PIN;
/*调用库函数,初始化GPIO*/
GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);
/* 关闭所有led灯 */
GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);
/* 关闭所有led灯 */
GPIO_SetBits(LED2_GPIO_PORT, LED2_GPIO_PIN);
}
对比发现基于寄存器的编程方式开发效率低,成本较大,但它的参数更加直观
Stduino IDE 与Ardunio IDE的比较
进入网站下载stduino,下载后如下:
stduino界面介绍:
与arduino相比较,stduino更容易掌握,同时有着足够的灵活性。不需要太多的单片机基础、编程基础,简单学习后,可以快速的进行开发,自带程序烧录,自带串口调试,软件界面简洁。stduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行。