[MM32软件] 使用mm32f3277g7p代替stm32f103rct6软件篇-点灯

[复制链接]
 楼主| tpgf 发表于 2021-12-27 10:55 | 显示全部楼层 |阅读模式
虽说mm32f3277g7p和stm32f103rct6引脚兼容,但想软件兼容也不是容易的事。在灵动微官网下载了mm32f3270例程和固件库后,开始改软件,实现点灯功能。

例程和固件库下载地址如下:

上海灵动微电子股份有限公司
上海灵动微电子股份有限公司
https://www.mindmotion.com.cn/pr ... instream/mm32f3270/
打开GPIO例程后,和正点原子的miniSTM32例程对比,可以看出来,软件框架结构没有改变,固件库、启动文件要换成灵动微的。移除原USER文件夹里面的stm32f10x_it.c。移除CORE文件夹里面的core_cm3.c文件。mm32固件库只有core_cm3.h文件。原SYSTEM里面的3个文件虽然名字差不多,里面内容变动很大,需要替换。
5816561c92af68b1bd.png
mm32f3277g7p没有位带操作功能,所以不能像stm32那样复用位带操作端口再赋值使用。端口定义的风格有点像野火mini版的例程。

外设配置程序里面,需要修改时钟配置函数和端口的时钟名称。IO口其他参数设置不用修改。

3552361c92afe75585.png

下面蓝线圈起来的3句程序作用是禁止JTAG接口,允许SW调试接口。stm32对应固件库的语句为

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//关闭jtag,使能SWD,可以用SWD模式调试
下面红线圈起来的语句是禁止PB5的复用功能,只使用PB5做通用IO口功能。如果想使用某一个IO口的复用功能,要查找复用功能表,找到对应复用功能的编号,把GPIO_AF_15改成对应的编号即可。

1329061c92b071f11f.png

896061c92b0d07504.png

main函数中mm32f3277使用宏定义操作IO口打开和关闭,而stm32直接使用库函数控制IO口置1和清0.
3335361c92b1a4b526.png


6821361c92b2398dfe.png

mm32f3277的delay函数里面默认使用systick中断进行延时,且只有ms级延时,没有us级延时函数,如果想用到us级延时,需要自己添加相应函数。或者不使用systick中断延时,直接使用nop循环延时。

6656461c92b2b09106.png

mm32f3277每个头文件里面都有对应文件名的宏定义,使用.c文件时要声明一下。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAanh3ODIyODQxMzQ=,size_19,color_FFFFFF,t_70,g_se,x_16.jpg

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAanh3ODIyODQxMzQ=,size_19,color_FFFFFF,t_70,g_se,x_16.jpg




mm32f3277系统固件库和stm32固件库相比改动还是比较大的,之前的mm32f103系列固件库和stm32f103固件库一样。


mutable 发表于 2022-1-17 17:19 | 显示全部楼层
没有自己的库和例程么?
yangxiaor520 发表于 2022-1-17 20:31 来自手机 | 显示全部楼层
库兼容性咋样?
gouguoccc 发表于 2022-1-18 08:37 来自手机 | 显示全部楼层
除了点灯还有啥?
littlelida 发表于 2022-2-15 13:22 | 显示全部楼层
第一步已完成
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2336

主题

17450

帖子

21

粉丝
快速回复 返回顶部 返回列表