资料获取
这里应该包含两部分资料,一部分是开发板设计者,也就是萤火工场的关于开发板的资料;一部分是开发板搭载的MCU的技术手册和开发套件;
其中开发板相关的资料可以直接在商城下载主要包含两个文件:一个是开发板用户手册,一个是开发板的原理图:
MCU的技术手册和开发套件需要去兆易创新官方网站下载: 兆易创新的资料比较多,在以后的开发学习中可以慢慢看。
我们这里只需要下载MCU用户手册、开发工具、SDK(软件开发套件):
用户手册:
软件开发烧录工具
标准固件库和wifi蓝牙固件库
认识开发板
外观
如图所示,开发板还是很小巧的。宽度跟拇指差不多。在拿到开发板准备分享之前也在B站查过相关的资料。有个UP主说箭头的地方是烧录芯片。
大概他没有好好研究原理图,从原理图看这里明明是一个NC(不焊接)的FLASH。接下来看下原理图:
原理图
NC的FLASH:
从图中也有标注是NC的,而且是FLASH。
供电:
这个供电不太理解,为什么用这种6PIN的TypeC。 只能供电,也不能烧录程序。有了解的小伙伴可以讨论一下;
BOOT 模式选择电路
这部分电路设计固件的烧录是必须要搞清楚的,看其他的分享大家都忽略了这部分,而且按照统一的接线方式接线烧录。
这里我分享一下我的理解:
根据上边的原理图,BOOT模式(引导模式)是通过BOOT0和BOOT1来决定的;这里默认忽略了其他的因素。具体可以参考兆易创新的用户手册1.4 关于引导模式的说明:
从上边的引导模式表中不难发现,引导模式就是选择引导地址和引导区域;除了跟BOOT0和BOOT1有关还受到寄存器EFBOOTLK的影响。
当寄存器EFBOOTLK的值是0的情况下才仅依赖BOOT0和BOOT1。这个寄存器的默认值就是0;
因此要确定引导模式只需要确定BOOT0和BOOT1的值,那么BOOT0和BOOT1的值是怎么确定的呢?还是官方的用户手册。
如上表所示,BOOT0的值在SWBOOT0寄存器位值为0的情况下仅受PC8的影响;
因此如果想让BOOT0的值是1就将PC8接VCC,这个开发板中就是跳线帽接PC8和BOOT0;
同样的道理如果想让BOOT1的值是0就让PB1接GND;
这样就可以在复位后通过串口下载程序。
但是这里我有个疑问。。。。。。。。
从原理图看BOOT0的上拉电阻是没有NC的,相当于浮空。 上电测试了电压也不是稳定的3.3V; 有知道的小伙伴可以讲解一下。
环境搭建
需要用到的两个软件都是在兆易创新的官网下载的。解压后就可以直接使用。免安装的。
固件烧录工具
集成开发环境
功能测试暨点灯
创建工程
按照下边的流程一步一步进行创建测试工程;
生成工程,并编译:
源码讲解
主程序:
拿到一个源码后首先需要看main.c 文件,这个文件中包含两个函数:
void led_spark(void) // LED灯闪烁程序
int main(void) // 主程序
其中主程序中进行了系统和外设初始化:
- 系统初始化,配置系统滴答,在使用延时函数前必须调用:systick_config();
- 设置中断优先级分组(问的deepseek):eclic_priority_group_set(ECLIC_PRIGROUP_LEVEL3_PRIO1);
- 初始化按键,LED,串口:
- gd_eval_led_init(LED1); LED1: 使用PA4
- gd_eval_led_init(LED2); LED2: 使用PA5
- gd_eval_led_init(LED3); LED3: 使用PA6
- gd_eval_com_init(EVAL_COM0); 串口使用串口0,PB15->TX; PA8->RX
- gd_eval_key_init(KEY_TAMPER_WAKEUP, KEY_MODE_GPIO);
- 打印信息并且进入死循环检测按键:
- printf("\r\nCK_SYS is %d\r\n", rcu_clock_freq_get(CK_SYS));
- printf("\r\nCK_AHB is %d\r\n", rcu_clock_freq_get(CK_AHB));
- printf("\r\nCK_APB1 is %d\r\n", rcu_clock_freq_get(CK_APB1));
- printf("\r\nCK_APB2 is %d\r\n", rcu_clock_freq_get(CK_APB2));
- 进入死循环检测按键:
while(1) {
if(RESET == gd_eval_key_state_get(KEY_TAMPER_WAKEUP)) {
delay_1ms(50);
if(SET == gd_eval_key_state_get(KEY_TAMPER_WAKEUP)) {
gd_eval_led_toggle(LED1);
}
}
}
烧录接线
通过上边的源码分析我们按照下边的方式接线:
下载电路: PA8接串口转TTL工具的TX; PB15接串口转TTL工具的RX;
LED电路:三个LED 阳极分别接PA4,PA5,PA6. 阴极接地;
功能演示、
串口打印信息:
LED灯:

