第一次申请成功,第一次写测评,有点小激动。个人水平有限,不妥之处还请多多指教。
本文分为以下几部分
- APM32F103VB开发板简介
- 开发工具
- 新建 Hello Wolrd 工程
一. APM32F103VB开发板简介
APM32F103VB是珠海艾派克微电子公司研发的一款基于 ARM Cortex-M3 内核的 MCU. 其主频最高可到72MHz, Flash为128KB, SRAM为20KB.
开发板的板载资源和实物图如下所示:
可以看出板载资源简洁, 两类IO设备(Key, LED), 两种通信接口(USB, UART), 一个标准Jtag/SWD接口, 绝大部分Pin通过两侧的排针引出. 因此,
PCB上元件数量也不多, 该PCB只在顶层放置元件. 外观规规矩矩, 白色PCB看起来也还不错.
从官方技术支持得知, 该芯片在硬软件上与同型号的STM32兼容, 这点很棒, 熟悉STM32的朋友就可以无痛上手啦~
二. 开发工具
官方提供了Keil下的开发环境, 由于和STM32兼容, 所以对工具链的选择其实就很广了. 下面是本次测评所选用的相关工具
- STM32CubeMX -- 用于配置底层代码
- Clion -- 代码编辑工具
- arm-none-eabi-gcc -- 免费的编译器
- Jlink -- 下载调试程序
三. 新建 Hello World 工程
- 打开STM32CubeMX, 选择相应的型号(STM32F103VB), 然后点右上角的"Start Project"
- 接下来配置时钟, 先看看原理图, 外接了32.768KHz的无源晶振和8MHz的无源晶振
- 所以在STM32CubeMX里进行如下配置: 在 System Core 下的 RCC 中设置 "High speed clock" 为 "Crystal/Ceramic
Resonator", "Low speed clock" 为 "Crystal/Ceramic Resonator". 也就是设置为无源晶振的意思.
- 随后, 在 "Clock Configuration" 中配置时钟. "Input frequence" 的值是之前晶振的频率. 然后, 修改"HCLK"的值并回车, 软件会自动计算分频,
倍频的系数. 是不是很方便~
- 从点亮一个LED开始吧, 看原理图得知PE5, PE6是用于控制LED的IO. LED采用共阳极的接法, 也就是说IO口给低电平, LED灯会亮~
- 在STM32CubeMX中配置PE5, PE6为GPIO_Output
- 再加上FreeRTOS, 在这之前我们需要修改一下"SYS"中的"time base source", 因为Systick默认给FreeRTOS用啦
- 接着设置 Project Manager. 选择IDE为"SW4STM32", 在"Code Generator"中进行如下设置.
- 就快大功告成了, move on. 点击右上角的 "GENERATE CODE"
- Then, Edit with Clion. 进入刚刚生产代码的文件夹, 鼠标右键 "Open Folder as Clion Project"
PS: Clion 的下载, 安装, 配置这里就不详细描述了, 不了解的朋友可以去网上search
- 打开Project之后会自动生产Cmake. 在free_rtos.c文件的default 线程中添加如下代码
- HAL_GPIO_TogglePin(LED_R_GPIO_Port, LED_R_Pin);
~隔200ms翻转一次电平
编译OK 生成Bin(ELF/HEX)文件
- 接下来就要下程序了, 打开Jflash, 选择芯片为STM32F103VB, 然后将Bin文件拖入到框中, 点击connect, program即可.
- 看看实际效果~
上传卡住了, 大家YY下吧, blingbling
总结, 使用体验总体还是比较顺利, 其实一开始用的是st-link, 不过st-link更新固件后就不认这芯片了, 后面换成Jlink就很OK, 为什么用Jlink还有一个
原因是Jlink的RTT很诱人, 还想继续折腾下~
下一篇移植下RTT/SystemView或者做做串口驱动
microZhu 2020-7-21 12:06
microZhu 2020-7-21 12:03
whik 2020-7-20 21:34