微信公众号 | strongerHuang
最近,收到面包板社区寄来的一款基于Cortex-M33内核的国产单片机开发板:FR3068D-C
这块开发板主控为国产MCU厂商富芮坤的FR3068E-C,还带有一块显示屏:
拿到这块板子,惊艳到我的不是开发板,而是他们提供的例程(非常的丰富)。
除了单片机常规的外设GPIO、UART、SPI、I2C等,还有很多学习单片机都会用到的协议栈(lwip)、文件系统(fatfs/littlefs)、日志库(EasyLogger)、数据库(FlashDB)、GUI(lvgl)、coremark跑分,还有USB、RTOS等很多单片机学习和开发项目中都会用到的技术。
这些例程是开源、且可以直接编译运行的代码,开发环境主要是Keil MDK。
你可别小瞧这些例程,我敢说,绝大多数工作三五年,甚至十年的资深工程师都没有完全弄懂这些技术。
这里先给大家看一段出厂的Demo:
接下来教大家用5分钟时间上手这款国产Cortex-M33内核单片机。
关于FR3068E单片机
教大家上手之前,先简单介绍一下这款国产Cortex-M33内核单片机。
FR3068E这款单片机,它不是有一款纯单片机,而是一块集成蓝牙核的双核芯片。
蓝牙部分我们这里不描述,主要讲述单片机部分,从框图可以看得出来单片机是一个 32 位的 CM33 内核处理器。然后,片上资源以及外设也非常的丰富。
更多关于单片机的介绍,大家可以进入富芮坤官网查看:https://www.freqchip.com/
5分钟上手国产CM33单片机
官网提供了大量的开发文档、资料、例程,我这里给大家理一下上手思路,以及注意事项。
1、官网下载开发文档、资料、例程
下载地址:https://www.freqchip.com/sjds
上手之前,建议先看下这些开发文档,以便了解更多信息。
2、搭建开发环境
这里主要有两个环境:Keil MDK 和 Python,所以,需要在 WIndows 操作系统环境下进行开发。
Keil MDK下载地址:https://www.keil.com/demo/eval/arm.htm
具体的安装过程这里不描述,请参考:Keil 系列教程
Python下载地址:https://www.python.org/getit/
目前最新版本python-3.13.0:https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe
同样,Python具体的安装过程这里不描述,Windows安装程序,基本上一路next即可,可以参考网上安装教程。
提醒一下:Python环境没有搭建好,最后生成可执行(下载)文件,就会出错。大家可以通过cmd命名输入 python 进行查看,如果出现类似下面情况,证明 python 环境搭建好了。
3、打开例程、编译
这里我们打开(上面下载好的)官方提供的例程,比如:lvgl_demo工程
我们这里直接双击,用Keil MDK打开工程,然后直接编译,最后会看到编译0错误的编译信息:
此时,在(output)输出路劲下就会看到生成这样几个文件,其中Project_burn.bin这个文件就是我们用于下载到单片机中的程序文件。
4、下载程序
这里用官网提供的下载工具:
然后选在刚才编译好的文件,点击【打开烧录】,复位单片机(按一下复位键):
最后会提示【烧录成功】,然后还有一段“乱码”出现:
此时,就会看到显示屏上有画面:
单片机片上外设例程:我们再打开一下外设例程,比如GPIO例程:
官网提供例程LED引脚和我们开发板有点不匹配,我们这里修改一下:
void gpio_demo(enum_GPIO_Demo_t fe_Demo)
{
/* init GPIO CLOCK */
__SYSTEM_GPIOD_CLK_ENABLE();
__SYSTEM_GPIO_CLK_SELECT_COREH();
printf("gpio clock:%drn", system_get_peripheral_clock( PER_CLK_GPIOx));
switch(fe_Demo)
{
case GOIO_OUTPUT:
{
GPIO_Handle.Pin = GPIO_PIN_6|GPIO_PIN_7;
GPIO_Handle.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_Handle.Pull = GPIO_PULLUP;
gpio_init(GPIOD, &GPIO_Handle);
while(1)
{
//pin Output high Level
gpio_write_pin(GPIOD, GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_SET);
system_delay_us(100000);
//pin Output low Level
gpio_write_pin(GPIOD, GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_CLEAR);
system_delay_us(100000);
}
}
}
}
编译好,然后,以上面的下载方式进行下载,就会出现:
此时,在开发板上,就会看到:看到这里,是不是觉得很简单?
是的,非常简单,对于有一定基础的同学,5分钟就可以搞定。