|
很多朋友问到,我不懂硬件,不懂寄存器操作,C语言也不是很会用,能写STM32单片机代码吗?其实还是有小路子的,用Arduino_IDE上位机软件,借助Arduino的库,使用C++/C语言编写STM32单片机代码。 这里以正点原子MINI板为例子,使用Arduino_IDE完成点灯和串口打印。 5 i5 P% V% j( M2 T- k. q
. }$ H$ P1 e* K3 k+ ~$ | 第一步,先把Arduino_IDE软件安装好。! h1 h: H8 l- h& k8 i0 `# y$ J 软件版本的话,最好还是1.8.x,由于arduino官网在国外,所以下载速度慢,这里大家可以查看一下我们提供的资料链接,里面有一个Arduino-1.8.13-windows.zip压缩包,解压即可使用。" `2 |1 A/ T1 ?% ? * E5 Y; s% f% ?% b8 a/ ?) Z
6 \" l- R* ~* p 第二步,从GitHub下载Arduino_STM32。 rogerclarkmelbourne博主提供了这个库。/ e4 a. \/ O+ v( X0 S + }( F. s' {/ _( A; v
这个也是属于外网,所以这个压缩包Arduino_STM32.zip也提供给大家。大家解压后,把Arduino_STM32文件夹拷贝或者移动到arduino-1.8.13/hardware即可。如下图所示。 3 Y+ }+ v$ W% N
第三步,打开Arduino_IDE,下载编译工具链。( ~# m' u6 P: |) P 按照以下顺序执行即可。( P) M; Y- [/ S* l9 l& D# g ①进入到开发管理器! v; O& s7 H. n. }1 Z0 Q . e9 n$ J, q5 R& D) \8 v0 g
②下载安装Arduino SAM Boards(32-bits ARM Cortex-M3)by Arduino开发板。7 q, @0 D k" {7 w* C (这个过程需要一定时间,请耐心等待安装完成)2 h$ V' v$ q; _& F4 _$ \
上图已经烧录好了,所以不需要重新安装。 注意:如果出现下载失败,基本上都是网络问题,最好选择白天下载,晚上外网网速比较慢。 第四步,硬件操作及烧录。 ①硬件操作:把MINI板子上的BOOT0引脚连接到VCC,我们使用串口下载方式,然后按一下复位引脚进入等待烧录状态。 $ ~% o4 L% w9 T7 v
; X3 ^& i4 f+ ^0 T ②选择可用的Demo,操作如下:7 K) ~8 g+ X7 J) h4 l. f1 l (1)选中板子型号,Generic STM32F103R series& t- q' H9 c) t" G2 ]% F ' `; L' l( b0 v8 l! x
- I' t# _' I5 Q' r* `7 ] (2)选中板子容量, STM32F103RC(48k RAM,256k Flash): x2 z$ L4 w) k# @% v0 L" r % ~$ t3 Y r8 z* y
(3)选取参考demo,拿手好戏—点灯demo。
8 t1 ^$ w3 B6 [) ~* j (4)根据原理图,修改一下代码。LED0用到PA8,LED1用到PD2。6 B; ^: h( {2 s* h$ C# e P
7 o6 I V2 X0 `3 {- @- x2 f; c% S
(5)选择下载方式串口并选择对应的COM口。9 m/ U7 n+ P% c b7 i5 s0 B: u& t9 E
) R7 L9 ~7 e9 r1 o& [ (6)下载验证。 (注意:烧写成功后,会发现LED0和LED1同时闪烁,假如不把BOOT0引脚重新连接到GND,这个现象只会出现一次,所以要把BOOT0引脚连接到GND,这时候你如何进行复位,上电都是正常效果) 下载完成如下图: $ ?& ?+ q; b6 ^2 N1 V' T2 Q6 ^& \
可以看到我们已经成功实现了点灯和串口打印。从代码实现上看,十分简单,对于新手比较友好,而且有很多库给我们轻松调用,所以DIY也可以尝试一下这种开发方式。; q( y. c$ ^. }* S4 I/ { ]( e+ P 不过,这个也有很大的缺点,不能调试以及不能go to definition,对于开发来说实属不便。0 W% v* X% C N1 d4 _: v KEIL,Arduino_IDE,VScode,STM32CubeMX,STM32CubeIDE都是可以进行STM32开发,这些只是工具,各有各的好处,当然对于我们来说,选择一个适合的开发方式肯定有着事半功倍的效果,但最重要的还是掌握STM32的开发。9 e/ _& C% ~1 N+ P! [6 j* N* b% [% r* | ———————————————— 版权声明:正点原子2 |9 D6 ?# Y3 O F0 c! G, c/ { 如有侵权请联系删除 . r$ {/ q7 d. u$ r# _9 |9 r2 C |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版