第一次申请成功,第一次写测评,有点小激动。个人水平有限,不妥之处还请多多指教。 本文分为以下几部分 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用啦 添加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或者做做串口驱动