|
很多朋友问到,我不懂硬件,不懂寄存器操作,C语言也不是很会用,能写STM32单片机代码吗?其实还是有小路子的,用Arduino_IDE上位机软件,借助Arduino的库,使用C++/C语言编写STM32单片机代码。 这里以正点原子MINI板为例子,使用Arduino_IDE完成点灯和串口打印。* A+ ~ y" c8 h6 W f% y) o" | ( x. k: m" s0 c; n
第一步,先把Arduino_IDE软件安装好。 软件版本的话,最好还是1.8.x,由于arduino官网在国外,所以下载速度慢,这里大家可以查看一下我们提供的资料链接,里面有一个Arduino-1.8.13-windows.zip压缩包,解压即可使用。- }* c2 t. {- W9 q/ Z
2 D& J6 a, u! J8 R / [' s5 X- R: C 第二步,从GitHub下载Arduino_STM32。; s$ c, X2 y7 k rogerclarkmelbourne博主提供了这个库。, y8 f( @) p) E' \3 e' c4 a3 P4 v: h 9 Y5 u, a" E# G% ?0 ?5 Q6 n
这个也是属于外网,所以这个压缩包Arduino_STM32.zip也提供给大家。大家解压后,把Arduino_STM32文件夹拷贝或者移动到arduino-1.8.13/hardware即可。如下图所示。8 ?$ L& f- p& ~ \; k# |4 u
# {/ C* T% k$ M7 @ 第三步,打开Arduino_IDE,下载编译工具链。3 k5 m* s# Q# _- I7 d 按照以下顺序执行即可。 ①进入到开发管理器
②下载安装Arduino SAM Boards(32-bits ARM Cortex-M3)by Arduino开发板。; Z, w1 d5 Q# U& p- V! | y' J (这个过程需要一定时间,请耐心等待安装完成)/ M6 m" J. x& |7 \2 v2 I4 D% c6 z
$ A. H0 h6 x. v% E* d# L6 D: { b 上图已经烧录好了,所以不需要重新安装。 注意:如果出现下载失败,基本上都是网络问题,最好选择白天下载,晚上外网网速比较慢。; x }1 F( ~' M( N- }( [ 9 Z" m9 @/ A3 \' p1 J, M0 X ' h8 ?( _) I0 F' ^4 F# B 第四步,硬件操作及烧录。# [7 J' ]" B$ x3 H ①硬件操作:把MINI板子上的BOOT0引脚连接到VCC,我们使用串口下载方式,然后按一下复位引脚进入等待烧录状态。4 M# I D. l- c- c * ]) F9 o* S. |/ h# {3 q
②选择可用的Demo,操作如下: (1)选中板子型号,Generic STM32F103R series
(2)选中板子容量, STM32F103RC(48k RAM,256k Flash)
4 w8 Z, O8 J" O, A1 i, C: V) ~ (3)选取参考demo,拿手好戏—点灯demo。/ ^, o5 H! W) j
3 X# Z8 }# j( T9 |: R (4)根据原理图,修改一下代码。LED0用到PA8,LED1用到PD2。
9 J B% E0 b4 `: p+ y# e Q
7 N2 Y7 a* _: u& O% U8 s6 ~: r; s. X7 i
(5)选择下载方式串口并选择对应的COM口。+ @8 d/ i) Q5 C! C5 Y 9 i8 z5 A& @/ x
1 H3 E; I( O6 d9 r6 L (6)下载验证。 (注意:烧写成功后,会发现LED0和LED1同时闪烁,假如不把BOOT0引脚重新连接到GND,这个现象只会出现一次,所以要把BOOT0引脚连接到GND,这时候你如何进行复位,上电都是正常效果)3 l1 T0 M+ A: U5 x* x: y 下载完成如下图: 4 n% C9 }; u$ F3 U% d
8 x9 h, t% J: s( K: z3 \# \% b 可以看到我们已经成功实现了点灯和串口打印。从代码实现上看,十分简单,对于新手比较友好,而且有很多库给我们轻松调用,所以DIY也可以尝试一下这种开发方式。; h) _$ K, |" P, _2 _; h% F4 U" k 不过,这个也有很大的缺点,不能调试以及不能go to definition,对于开发来说实属不便。 KEIL,Arduino_IDE,VScode,STM32CubeMX,STM32CubeIDE都是可以进行STM32开发,这些只是工具,各有各的好处,当然对于我们来说,选择一个适合的开发方式肯定有着事半功倍的效果,但最重要的还是掌握STM32的开发。 ————————————————' R1 e" u/ r! q 版权声明:正点原子 如有侵权请联系删除2 n+ {% I* @9 J* |! N! T |
【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 功能的使用
微信公众号
手机版