
STM32系列单片机如果库函数开发的话,那么不同型号单片机的工程是可以直接移植的。这样的话如果项目中更换了芯片,工程就可以直接移植过去,不用重新编写。这样就节约了很多时间。 + Z! Q( z7 k* K% c 下面说一下如何将 在STM32F103RCT6单片机上开发的工程,移植到STM32F103C8T6单片机上。移植工程之前,首先要确保工程中用到的IO口,在两个芯片中都有。否则如果工程中使用IO在一个芯片上有,另一个芯片上没有,那么是不能直接移植的,需要更改 IO口后才能使用。( l4 j K5 Y& N. r+ B; o: X 相关IO口可以在官方芯片资料中查看- B; t8 a3 ]1 ]$ ?" d( L# X ![]() 5 u8 ~& T" ]+ c7 r+ p7 n 如上图所示 PC0口,在48个引脚的单片机中是没有的,在其他单片机中的引脚位置也不一样。移植的时候引脚位置要确认好,看看位置不同是否影响使用。虽然在不同封装上引脚编号不一样,但是引脚的功能都是一样的。在程序中的设置方法也是一样的。 下面用一个工程来说明,用STM32F103RCT6单片机编写的读取内部温度传感器工程,移植到STM32F103C8T6单片机上。由于温度传感器是内部自带的功能,和外部IO口无关,所以程序不用做任何修改。只需要在keil中修改配置就行了。$ _8 X% p0 |) o* Z 2 B: N p* u1 I. k$ r% A ![]() * M- _5 H9 V9 _& r 首先将Device中芯片型号由STM32F103RC 改为 STM32F103C8. @$ J K! A- h+ ? ( I: Z" D4 W- o, [- ?1 G% o ![]() 下面更改宏定义设置 ![]() 在C/C++中将宏定义STM32F10X_HD 改为 STM32F10X_MD,因为STM32F103RC为大容量芯片,而 STM32F103C8为中等容量芯片,所以要将HD改为MD。, A! f5 x% t- Z# ^/ O z7 ~ ![]() 最后设置Debug选项 ![]() 在Debug中选择烧写器为J-LINK,然后点后面的Settings按钮。! a8 X5 Q$ Z* [ ![]() 打开的界面中选择Flash DownLoad选项,底下默认是STM32F103RC单片机的flash文件,为512k,而当前用的STM32F103C8单片机flash为128K,所以要将原来的文件删除掉,重新添加文件。 选中默认文件,点底下Remove按钮,删除原文件。 4 W' f+ F7 S1 N9 S2 Y ![]() - L% p! W( X2 e5 N+ @3 y 删除掉原文件后,再点Add按钮添加新文件。 ^' ~* {4 d9 S8 j2 Z ![]() 在打开的对话框中选择第一个文件 128K大小 5 P0 H2 O) P2 i6 r: b ![]() / C( z! x! k: h7 h9 F7 a+ v 点Add按钮,添加新文件。 % X9 [: k0 Z }2 d( g ![]() ! C( L9 S V$ q2 C' d J0 T1 ` 这时flash文件大小就变成128k了,最后点确定按钮。4 j$ e# M2 u7 b7 q 1 R$ r1 D% [" Z' x4 q ![]() % }# D( W5 L. B' w* ` 这时回到设置界面,在点OK按钮。这样设置工作就完成了,重新编译工程就可以直接使用了。% D% _6 w4 A/ c0 T% T ![]() 7 l0 G) d& z' v$ J% [" i; F& ~" [( \ 工程编译成功,下载到单片机中看看运行结果。 + l3 [( x& s9 D @/ l1 F ![]() ! o2 r4 `- K9 `- r0 n# _ 温度读取成功,说明工程移植也成功了。( X+ j0 ? r& u4 u9 G, z 4 O, P; ^* r+ r4 X- w) P) c+ i & P5 w z1 y9 [" ^+ n4 h! w: A |
实战经验 | Keil工程使用NEAI库的异常问题
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
【经验分享】基于STM32使用HAL库实现USB组合设备CDC+MSC
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命
从STM32 MPU产品看嵌入式系统中微处理器的新变化
【Hot!】STM32全系列开发板都支持Arduino开发,你知道吗?