| 本帖最后由 聪聪哥哥 于 2024-7-1 21:12 编辑 
 
 首先感谢21IC平台给予得测试机会,下面简单介绍一下开发过程。 第一步:固件包下载:灵动Mini-F5333开发板是一款基于MM32F5333D7PV 微控制器的开发板,这里我使用的方法是在灵动官网上直接下载固件包。 我使用开发环境Keil版本V5.38.0.0版本,当使用 KEIL 集成开发环境开发 MM32 微控制器时,需安装本支持包,从而实现在 KEIL 中选择 MM32 芯片型号,调试以及下载。 官方下载链接:https://www.mindmotion.com.cn/software/info.aspx?itemid=170 如果您使用的是IAR开发环境也不用担心,官方也是提供相对应的固件包的; 解压完成后,只需安装F5330的芯片pack就可以了。 个人觉得这样还是比较简单的,如果使用keil安装相应的固件包的话,个人觉得是比较麻烦的,而且对于经验不足的我来说,并不是很友好。而且不建议使用5.39以上版本的KEIL开发工具。 第二步:编程器的环境搭建。 灵动Mini-F5333没有板载MM32的调试器,我们需要自行的找到合适的调试器,这里我所使用的是DAP的调试器,在调试起国产32芯片还是很方便的,图片如下: 接下来我们开箱看一下实物图片, 可以看到打开板子后,是这次需要测评的开发板、小螺丝刀。 开发板板载了两个type-c的接口,通过原理图我们可以知道左侧的接口主要是USB通讯的作用,而右侧的接口是USB转串口的接口,具有串口通讯的作用。是非常常见的32芯片与PC相连的方式。 上电测试一下: 串口硬件连接: 打开电脑上面的设备管理器看一下: 利用串口工具检测一下,串口发送的数据如下所示: 使用的DAP调试器安装如下图: Keil软件配置信息,如下: 安装好调试器之后,进入调试器配置信息内,可以读取芯片的IDCODE信息 在下载界面,需要选择MM32F5330的下载算法,没有改算法的情况下是不能将程序正常烧录的。 试验目的:利用按键的上升沿进行流水灯的触发; 硬件连接: 这里我使用的按键key2,实现的功能是按键由低变高时,触发使能。 
 软件代码如下所示: /*这里我检测的是下升沿,当检测到到低电平时,才会触发流水灯的使能位*/ void JudgeInputData(void) { 
         if( GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5) ==  Bit_RESET )         {         
                         blink_flag = 1 ;         } 
 
                 if( GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) ==  Bit_RESET )         {         
                         blink_flag = 0 ;         } 
 } /***********************************************************************************************************************   * @brief   * @param  none   * @retval none   *********************************************************************************************************************/ void GPIO_LED_blink(int mode ) {                 switch (mode) 
                 {                         case 0:      GPIO_WriteBit(GPIOB, GPIO_Pin_10 , Bit_RESET);                                                          break ;                                                 case 1:      GPIO_WriteBit(GPIOB, GPIO_Pin_10 , Bit_SET);                    break ;                          case 2:      GPIO_WriteBit(GPIOC, GPIO_Pin_7 , Bit_RESET);                                 break ;                                                 case 3 :     GPIO_WriteBit(GPIOC, GPIO_Pin_7 , Bit_SET);                                       break  ;                         case 4 :     GPIO_WriteBit(GPIOC, GPIO_Pin_6 , Bit_RESET);                                 break  ;                         case 5 :     GPIO_WriteBit(GPIOC, GPIO_Pin_6 , Bit_SET);                                 break  ; 
                         default: 
                         break ; 
                 }         } 
 主程序: 
     printf("\r\nTest %s", __FUNCTION__); 
     GPIO_Configure(); 
     while (1)     { /* 检测当前得按键输入状态*/                         JudgeInputData(); 
 /*只有在按键,触发得状态下,才允许进入LED得闪烁*/                                                 if(blink_flag == 1)                         {                                 temp ++ ;                                 if(temp >5) temp = 0 ;                                 GPIO_LED_blink(temp); 
                         }                         GPIO_IO_Toggle(GPIOB,GPIO_Pin_11); 
                         PLATFORM_DelayMS(300);         } 
 实现现象: 下载程序之后,板载的LED灯LED1(红色开始闪烁), 当按下K2按键后,在抬起的之后可以看LED2/LED3/LED4,交替闪烁。 当按下K3按键后,LED灯停止交替闪烁。 
 实现效果如下: https://www.bilibili.com/video/BV17R8oetEvV/ 
 |