本帖最后由 aguoaguo 于 2021-10-26 15:56 编辑

感谢社区提供评估板学习。

板载主控芯片MM32F3277内置512KB flash,128KB SRAM,外设资源十分丰富。收到开发板照旧先做个流水灯进行测试。

首次使用需要先安装PACK和MM32-LINK驱动,这个要到官网下载。

LED和按键控制主要涉及IO初始化,代码如下:
  • typedef const struct
  • {
  •     GPIO_TypeDef *port;
  •     GPIOMode_TypeDef mode;
  •     GPIOSpeed_TypeDef speed;
  •     uint32_t val_init;
  •     uint32_t pin;
  •    
  • } gpio_init_cfg_type;
  • 复制代码
    static gpio_init_cfg_type gpio_cfg[] =
  • {
  •     //LED
  •     {GPIOA, GPIO_Mode_Out_PP, GPIO_Speed_20MHz, 1, GPIO_Pin_15},
  •         {GPIOB, GPIO_Mode_Out_PP, GPIO_Speed_20MHz, 1, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5},
  •         
  •         // uart 1
  •         {GPIOA, GPIO_Mode_AF_PP, GPIO_Speed_50MHz, 1, GPIO_Pin_9},
  •         {GPIOA, GPIO_Mode_IPU, GPIO_Speed_50MHz, 1, GPIO_Pin_10},
  •         
  •         // key
  •         {GPIOB, GPIO_Mode_IPD, GPIO_Speed_20MHz, 1, GPIO_Pin_1},
  •         {GPIOB, GPIO_Mode_IPU, GPIO_Speed_20MHz, 1, GPIO_Pin_0 | GPIO_Pin_2 | GPIO_Pin_10},
  • };
  • 复制代码
    void bsp_gpio_init(void)
  • {
  •     int index;
  •    
  •     RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);
  •     RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOB, ENABLE);
  •     RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOC, ENABLE);
  •     RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOD, ENABLE);
  •     RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOE, ENABLE);
  •         RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOF, ENABLE);
  •         RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOG, ENABLE);
  •         RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOG, ENABLE);
  •         // JATG DIS
  •     GPIO_PinAFConfig(GPIOA, GPIO_PinSource15, GPIO_AF_15);                      //Disable JTDI   AF to  AF15
  •     GPIO_PinAFConfig(GPIOB, GPIO_PinSource3, GPIO_AF_15);                       //Disable JTDO/TRACESWO   AF to  AF15
  •     GPIO_PinAFConfig(GPIOB, GPIO_PinSource4, GPIO_AF_15);                       //Disable NJRST   AF to  AF15
  •     GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_15);                       //Disable AF Funtion   AF to  AF15
  •         
  •     /*gpio cfg*/
  •     for(index=0; index < sizeof(gpio_cfg)/sizeof(gpio_init_cfg_type);index++)
  •     {
  •         GPIO_InitTypeDef GPIO_InitStructure;
  •         
  •         GPIO_InitStructure.GPIO_Mode = gpio_cfg[index].mode;
  •         GPIO_InitStructure.GPIO_Speed = gpio_cfg[index].speed;
  •         GPIO_InitStructure.GPIO_Pin = gpio_cfg[index].pin;
  •         GPIO_Init(gpio_cfg[index].port, &GPIO_InitStructure);
  •         
  •         if((gpio_cfg[index].mode == GPIO_Mode_Out_OD) || (gpio_cfg[index].mode == GPIO_Mode_Out_PP))
  •         {
  •             if(gpio_cfg[index].val_init)
  •             {
  •                 GPIO_SetBits(gpio_cfg[index].port, gpio_cfg[index].pin);
  •             }
  •             else
  •             {
  •                 GPIO_ResetBits(gpio_cfg[index].port, gpio_cfg[index].pin);
  •             }
  •         }
  •     }
  •         
  •         // UART1 AFIO
  •         GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_7);
  •     GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_7);
  • }
  • 复制代码


    bbssdmm32.jpg

    下面附上测试工程:

    F3277_eMini_LED.rar (5.47 MB, 下载次数: 4)
    全部回复 0
    暂无评论,快来抢沙发吧