[APM32F4] 【APM32F411V Tiny Board测评】-01 编程环境的搭建

[复制链接]
 楼主| 主战坦克 发表于 2024-5-27 20:46 | 显示全部楼层 |阅读模式
开发板早已拿到,但是由于工作太忙,现在才写测评。APM32单片机早有耳闻,但是一直没有进行测试,这次21IC网站开展测试互动,本人有幸入选,能够对该单片机进行测试。
1、单片机档次理解
APM32的产品线中,APM32F411系列的单片机应该是一个中高档次,该型号上方有APM32F465APM32F407,下方有APM32F3XXAPM32F0XX。如果该系列单片机的定价合理,在国产MCU中应该会占有比较大的份额。
2、硬件的搭建
该开发板的做工比较扎实,讲单片机的引脚全部引出,还板载了仿真器,有一点值得夸奖,该开发板安装的USB口是TYPE-C,好找数据线。使用的时候,直接将USB口连接至计算机,就可以下载程序和在线调试。
3、软件环境的搭建
本人使用过多种单片机,各单片机厂商都有一个共同的问题,就是开发板中的库文件单独放在一个文件夹中,与程序的projet文件夹不在一起,当改变程序的位置时,需要重新配置,为今后的程序开发带来一定的麻烦。为了改变此情况,本人对编程环境重新进行了搭建。
(1)建立文件夹。建立项目文件夹,在项目文件夹中建立如下子文件夹。
P1.png
其中APP文件夹用来放应用程序,BSP用来存在电路板的驱动,Libraries用来存放该单片机的固件,MDK用来存放Keil相关文件,USER用来存在用户程序。各文件夹存放内容如下所示。
P2.png P3.png P4.png P5.png
2Keil的设置
然后在Keilprojet里面建立如下目录。
P6.png
同时在keil中设置头文件的目录,设置内容如下所示

P7.png
3)程序设计
该开发板单独建立了一个开发板的驱动c文件,里面用了大量的宏定义,但是如果需要自己对程序进行开发,设计的电路板IO口与开发板未必能够对应,因此本人对上述程序均进行了修改。
LED驱动程序如下:

  1. /* Includes */
  2. #include "main.h"

  3. void Led_Init(void)
  4. {
  5.     GPIO_Config_T  configStruct;

  6.     /* Enable the GPIO_LED Clock */
  7.     RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOE);

  8.     /* Configure the GPIO_LED pin */
  9.     GPIO_ConfigStructInit(&configStruct);
  10.     configStruct.pin = GPIO_PIN_5 | GPIO_PIN_6;
  11.     configStruct.mode = GPIO_MODE_OUT;
  12.     configStruct.speed = GPIO_SPEED_50MHz;

  13.     GPIO_Config(GPIOE, &configStruct);
  14.     GPIOE->BSCL = GPIO_PIN_5;
  15.         GPIOE->BSCL = GPIO_PIN_6;
  16.         
  17. }

  18. void Led2_On(void)
  19. {
  20.         GPIOE->BSCH |= GPIO_PIN_6;
  21. }

  22. void Led2_Off(void)
  23. {
  24.         GPIOE->BSCL |= GPIO_PIN_6;
  25. }

  26. void Led3_On(void)
  27. {
  28.         GPIOE->BSCH |= GPIO_PIN_5;
  29. }

  30. void Led3_Off(void)
  31. {
  32.         GPIOE->BSCL |= GPIO_PIN_5;
  33. }

主程序如下:
  1. int main(void)
  2. {
  3.     Led_Init();
  4.         Delay_Init();
  5.        
  6.         while (1)
  7.     {
  8.                 Delay_ms(200);
  9.         Led2_On();
  10.                 Delay_ms(300);
  11.                 Led3_Off();
  12.                 Delay_ms(300);
  13.         Led2_Off();
  14.                 Delay_ms(100);
  15.                 Led3_On();
  16.     }
  17. }

4、程序测试
按照上传步骤完成搭建后,将程序下载至开发板,可以看到两个LED按照编程内容愉快的闪烁了。



星辰大海不退缩 发表于 2024-6-22 20:51 | 显示全部楼层
基础GPIO很重要,尤其是单片机学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

65

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

6

主题

65

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部