[MM32软件] 国产单片机系列:上海灵动微电子MM32使用笔记

[复制链接]
1100|4
 楼主| 朝生 发表于 2022-9-13 14:33 | 显示全部楼层 |阅读模式
原本项目上使用了STM32F031F6P6这一款单片机,奈何ST的芯片疯涨所以换了国产灵动微电子的MM32F031F6P6,随笔分享一下使用该芯片的一些注意事项。
我以MM32F031系列单片机为例,说一下使用情况。
这款国产单片机兼容ST同型号,ST的最高到48M主频,而MM的最高能到72M。
在灵动官网下载的示例程序系统时钟源是通过system_MM32F031x4x6_q.c中的宏选择的,如下图:
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxMTUzNDcxNTAz,size_16,color_FFFFFF,t_70.jpg
SYSCLK_FREQ_HSE:选择为外部高速时钟,默认是8M
SYSCLK_HSI_48MHz选择为内部时钟(这一款单片机的默认内部时钟就是48M,跟ST不同)
SYSCLK_HSI_72MHz选择并配置时钟为内部72M
如果是使用的是外部时钟8M,官方示例程序是没有倍频到48M的,所以系统时钟就是8M,如果你需要倍频到48M,使用我这个函数替换掉原来的即可:
  1. static void SetSysClockToHSE(void)
  2. {
  3.         /* 使能HSE */
  4.         RCC->CR |= RCC_CR_HSEON;
  5.        
  6.         /* 等待HSE准备就绪 */
  7.         while(!(RCC->CR & RCC_CR_HSERDY));
  8.        
  9.         /* 启用预取缓冲区并设置闪存延迟 */
  10.         FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY_1;
  11.        
  12.         /* 设置HCLK时钟分频为1分频 */
  13.         RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
  14.        
  15.         /* 设置PCLK1时钟分频1分频 */
  16.         RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1;
  17.        
  18.         /* 设置PCLK2时钟分频1分频 */
  19.         RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
  20.        
  21.         /* 设置HSE作为PLL输入时钟 */
  22.         RCC->CFGR |= (1 << 16);
  23.        
  24.         /* 设置HSE不分频输入PLL */
  25.         RCC->CFGR &= (~(1 << 17));
  26.        
  27.         /* 设置PLL倍频6倍到48M */
  28.         RCC->CR &= (~(1 << 26));
  29.         RCC->CR |= (5 << 26);            // PLLDN = 5
  30.         RCC->CR &= (~(1 << 20));         // PLLDM = 0
  31.        
  32.         /* 使能PLL */
  33.         RCC->CR |= (1 << 24);
  34.        
  35.         /* 等到PLL就绪 */
  36.         while(((RCC->CR & (1 << 25)) == 0));
  37.        
  38.         /* 设置PLL输出作为系统时钟 */
  39.         RCC->CFGR &= (~RCC_CFGR_SW);
  40.         RCC->CFGR |= RCC_CFGR_SW_1;
  41.        
  42.         /* 等待系统时钟切换就绪 */
  43.         while(((RCC->CFGR & (RCC_CFGR_SW_1 << 2)) == 0));
  44. }
还一个问题是我使用ST-LINK的SWD模式下载程序时,第一次下载成功,但是无法下载第二次,并且程序没有运行,按住复位、下载程序、瞬间松开复位,执行这三个步骤才可以下载,后来我换成了DAP仿真器,没有上述问题。


星辰大海不退缩 发表于 2022-10-15 14:37 | 显示全部楼层
挺好的,确实第一次下载容易发生,问题后期遇到问题多交流
 楼主| 朝生 发表于 2022-11-1 16:30 | 显示全部楼层
星辰大海不退缩 发表于 2022-10-15 14:37
挺好的,确实第一次下载容易发生,问题后期遇到问题多交流

是第二次下载的时候容易出这个问题。因为主控频率有问题
caigang13 发表于 2022-11-2 08:11 来自手机 | 显示全部楼层
国产替代肯定有个阵痛期吧,所以平台用熟了都不想轻易更换。
 楼主| 朝生 发表于 2022-11-7 20:54 | 显示全部楼层
caigang13 发表于 2022-11-2 08:11
国产替代肯定有个阵痛期吧,所以平台用熟了都不想轻易更换。

除非成本控制不住。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

2426

帖子

2

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