用Arduino IDE+STM32制作LED闪烁灯

发布时间:2023-06-25  

  Arduino广为电子爱好者和工程师熟悉,但8位CPU和慢几拍的时钟并不适合深度开发。如果与STM32F103C8T6结合,一个全新的应用就会出现,我们可在Arduino IDE上对STM32板子进行编程。


  本项目所需材料有:STM32小蓝板 (STM32F103C8T6)、FTDI编程器、面包板及导线、可联网笔记本电脑。


  了解STM32小蓝板

  STM32开发板由于PCB蓝色而称为小蓝板(Blue Pill),采用的是STM32F103C8T6芯片,体积比Arduino Nano板略大。除了芯片本身,板上还有一个8Mhz晶体和一个32KHz晶体来驱动内部实时时钟。该电路板使用3.3V逻辑电平,但其大部分引脚均为5V耐压,可运行于深度睡眠模式。


  STM32F103C8T6是一款32位ARM处理器,主频72MHz,提供20KB的RAM和64KB闪存,足以构建大型项目。芯片具有37个GPIO引脚,10个ADC引脚、SPI、I2C、CAN、UART总线和DMA控制器。这些令人印象深刻的芯片价格为3美元。如果我们将STM32的规格与Arduino Uno的规格进行比较,我们可以看到这个小板在每个领域都优于Arduino Uno。STM32芯片的工作频率是Arduino Uno工作频率的4.5倍。因此,预计STM32至少比Arduino Uno快4.5倍。


  与Arduino板不同,小蓝板必须使用boot 1 and boot 0跳线手动改设置编程模式,编程时将boot 0设置为3.3V,工作时设置为接地。


  编程准备

  STM32小蓝板可使用所有的ARM芯片编程方式进行编程一些常见的IDE有:Keil ARM MDK、IAR workbench、Atollic TrueStudio、MicroC Pro ARM、Crossworks ARM、Ride 7、PlatformIO+STM32。本项目使用Arduino IDE是为了方便,因为大家普遍对Arduino IDE环境比较熟悉。


  使用Arduino IDE直接编程STM32 Blue Pill 板子时,我们需要一块串口FTDI 板,这块板子连接于小篮板的Rx、Tx引脚。

  这里,FTDI板的Vcc引脚连接与STM32 5V供电引脚,两块板的地-地连接,Rx、Tx引脚分别连接STM32小篮板的A9、A10引脚。

  当然,如果方便的话,你也可以直接使用micro-USB端口对STM32小篮板进行编程,这样做是为了让大家多了解一种方法。步骤如下:

  Step 1:- 选择正确的Arduino IDE并安装。

  Step 2:- 打开Arduino IDE,下载STM32小篮板所需的封装。

  Step 3:- 点击references,打开如下对话框,在Boards Manager URL文本框中黏贴链接http://dan.drown.org/stm32duino/package_STM32duino_index.json,

  然后按 OK。

用Arduino IDE+STM32制作<a href=LED闪烁灯" src="https://semi-static.oss-cn-hangzhou.aliyuncs.com/article/2023/06/25/1687665201.png">

 

  Step 4:- 进入Tool -> Boards -> Board Manager打开板自管理器并选择“STM32F1” ,再安装出现的封装。

  Step 5:- 安装完成。在 Tools 下拉中寻找如下 Generic STM32F103C 系列,确定参数为:64kFlah type, CPU speed is 72MHz,并将上传模式更改为串口。

 

用Arduino IDE+STM32制作LED闪烁灯

  Step 6:- 将FTDI板于电脑链接,检查FTDI板子所连接的哪个COM 端口是用作设备管理的。然后,在 Tools->Port 中选择同一端口编号。

  Step 7:- 完成上述变更后,检查Arduino IDE右下角显示正在设置。这样,Arduino IDE 就已经准备就绪,可以对STM 32小篮板进行编程了。

  上传stm32f103c8t6示范代码

  从Arduino IDE中将Sample Blink Program 上传到STM32小篮板,确保运行正常。

用Arduino IDE+STM32制作LED闪烁灯

用Arduino IDE+STM32制作LED闪烁灯

  示范程序打开后,需要进行小小改动。默认形况是写入PB1,本项目的LED连接于PC13,需要用PC13来取代PB1。

  由于我们已经很好处理了,记下来出现以下程序,这样LED将以1000毫秒间隔闪烁。

 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
 

  由于早期的STM32板必须在上传程序之前设置为编程模式,这需要将boot 0 跳线置于低位。

  现在,按下复位按钮,进入编程模式,绿色LED等熄灭,表示板子准备就绪。

  按Arduino IDE的上传健,开始编程和上传。如果一切正常,将会出现Arduino IDE 界面:

用Arduino IDE+STM32制作LED闪烁灯


  运行STM32闪烁程序

  程序正常上传后,绿色LED将以1妙间隔闪烁,当然,你也可以变更程序以增加或缩短时间间隔,实现不同效果的闪烁体验。

  程序上传完成后,boot 0 跳线应该归位到运行模式,这样下次板子上电后就会自动开始上传程序。

  附:STM32闪烁代码

/*

 circuitdigest.com
 Sample STM32 Blink Program for Blue Pill board 
 */
// the setup funcTIon runs once when you press reset or power the board
void setup() {
 // iniTIalize digital pin PC13 as an output.
 pinMode(PC13, OUTPUT);
}
// 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 
  }


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    是技术拆解后,宝马车主们累觉不爱尊贵感,咱不听这好话多花钱。 宝马B48前照灯总成(远光) 为了省电节能及增加远光灯与超车灯连接高度,宝马B48左右远光灯与超车灯照明均采用了LED模块照明方式。宝马B48前照灯总......
    STM32裸机编程的基础知识(5);闪烁 LED 现在我们已经搭建好了完整的构建、烧写的基础设施,是时候让固件做点儿有用的事情了。什么是有用的事情?当然是闪烁 LED 了!Nucleo-F429ZI......
    一篇文让你了解汽车大灯进化史;今天我们来聊一聊起汽车大灯历史,大家想起的第一款灯总是乙炔灯,其实在乙炔灯成为汽车稳定光源之前,煤油灯才是汽车最早的照明工具。克鲁......
    开关电源不难修,检修步骤和技巧; 家里一台电器坏了,打开一查,发现是电路板坏了,电源部分是开关电源,电源管理芯片是LD7552,怎么修呢? ......
    LED闪烁(2024-08-16)
    LED闪烁;闪烁是啥意思?就是亮一会,灭一会儿,再亮一会儿,显然这是个循环结构,循环里面要有亮一会的代码和灭一会儿的代码。亮起来很简单,给LED对应引脚一个低电平,灭也很简单,给LED对应......
    环和一些锦上添花的功能模块呢?还有很多地方都是寄存器直接配置,我完全看不懂不知道怎么修改,一头雾水。所以最好的办法就是,参照别人的程序,一点一点自己粘贴然后修改底层搭建自己的工程。或者......
    这个接口就可以在PA4引脚上输出相应的电压值(注意这个接口适用于参考电压为3.3V的情况下,若参考电压改了,换算的公式也要对应改,看源代码的人都应该知道怎么修改)。 这里是使用软件出发转换,后期会使用其他方法触发。 五......
    plc控制器怎么用 plc控制器怎么修复;  plc控制器怎么用   PLC(Programmable Logic Controller)控制器的使用通常需要以下步骤:   了解......
    告诉你怎么编写一个最简单的单片机程序;在汇编语言中,让某个端口输出高电平或低电平都有专用的语句,以P1.0端口为例: 让该端口输出高电平的语句是: SETB P1.0 让该......
    两相电机通电后不转嗡嗡响怎么修;  两相电机通电后不转嗡嗡响怎么修   两相电机通电后不转,发出嗡嗡声的原因可能是电机损坏或电源供电不足。以下是一些可能的修复步骤:   检查电源:确保......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>