我也曾经有过同样的问题,用得多了以后,根据我的理解:
1. 新开一个STM32的工程项目,可以从CubeMX开始,也可以从MDK+RTE/CMSIS...开始,出来的整体框架就不同。
2. 根据软件版本的新旧,两种方法可以直接选用中间件可能有不同,比如FreeRTOS, FileSystem,IOT;
3. 两种方法可以使用的底层驱动也不同(可能有重叠),CubeMX有HAL和LL库。 MDK有ARM-RTE+HAL+LL等。 其实底层驱动是可以混用的,混用的缺点是有可能增加代码长度。
4. 所有底层驱动都是STM公司的团队开发的,可能是不同的团队,具体看看文件头就知道了。
5. CubeMX是STM32专用的,同一套代码,很容易修改来为不同系列的IC使用。 而MDK的框架的代码,有可能可以适用于其他品牌的IC,比如NXP,这也不是什么优点,通常很少有一个项目会在不同品牌的IC之间变化。
6. 其实两种框架,没有好坏之分,喜欢哪个就用哪个,哪个可以找到的例程最接近我的项目,就用哪个。
我也曾经有过同样的问题,用得多了以后,根据我的理解:
1. 新开一个STM32的工程项目,可以从CubeMX开始,也可以从MDK+RTE/CMSIS...开始,出来的整体框架就不同。
2. 根据软件版本的新旧,两种方法可以直接选用中间件可能有不同,比如FreeRTOS, FileSystem,IOT;
3. 两种方法可以使用的底层驱动也不同(可能有重叠),CubeMX有HAL和LL库。 MDK有ARM-RTE+HAL+LL等。 其实底层驱动是可以混用的,混用的缺点是有可能增加代码长度。
4. 所有底层驱动都是STM公司的团队开发的,可能是不同的团队,具体看看文件头就知道了。
5. CubeMX是STM32专用的,同一套代码,很容易修改来为不同系列的IC使用。 而MDK的框架的代码,有可能可以适用于其他品牌的IC,比如NXP,这也不是什么优点,通常很少有一个项目会在不同品牌的IC之间变化。
6. 其实两种框架,没有好坏之分,喜欢哪个就用哪个,哪个可以找到的例程最接近我的项目,就用哪个。
举报