STMCU小助手
发布时间:2022-3-22 13:00
|
STM32系列单片机如果库函数开发的话,那么不同型号单片机的工程是可以直接移植的。这样的话如果项目中更换了芯片,工程就可以直接移植过去,不用重新编写。这样就节约了很多时间。 ( ^2 a0 y, O5 l" N 下面说一下如何将 在STM32F103RCT6单片机上开发的工程,移植到STM32F103C8T6单片机上。移植工程之前,首先要确保工程中用到的IO口,在两个芯片中都有。否则如果工程中使用IO在一个芯片上有,另一个芯片上没有,那么是不能直接移植的,需要更改 IO口后才能使用。 * Q A' I' P9 E' L) b 相关IO口可以在官方芯片资料中查看2 v% v! u9 Z8 }* s9 w/ [ 0 y& G& {% T# }3 Y$ }: |, w
7 G/ F/ e$ a0 S3 y6 D0 @ 如上图所示 PC0口,在48个引脚的单片机中是没有的,在其他单片机中的引脚位置也不一样。移植的时候引脚位置要确认好,看看位置不同是否影响使用。虽然在不同封装上引脚编号不一样,但是引脚的功能都是一样的。在程序中的设置方法也是一样的。 " o' f1 G' G) C 下面用一个工程来说明,用STM32F103RCT6单片机编写的读取内部温度传感器工程,移植到STM32F103C8T6单片机上。由于温度传感器是内部自带的功能,和外部IO口无关,所以程序不用做任何修改。只需要在keil中修改配置就行了。
+ U ~! `3 L+ p6 H+ s, {" R 首先将Device中芯片型号由STM32F103RC 改为 STM32F103C8 ; j7 A( f' j, Y" g+ \" }
0 J! t# i/ F7 N1 ~2 F( P 下面更改宏定义设置 i- N" {2 ]! t; G) i/ i
, w9 i g. I+ U- W 在C/C++中将宏定义STM32F10X_HD 改为 STM32F10X_MD,因为STM32F103RC为大容量芯片,而 STM32F103C8为中等容量芯片,所以要将HD改为MD。 % G% r* F: b9 S2 A
5 N, [/ ^1 a2 Q3 o4 m3 r 最后设置Debug选项. B5 J+ f" w0 T, h$ X8 k" f
2 P) @1 V% C3 p4 [0 d 在Debug中选择烧写器为J-LINK,然后点后面的Settings按钮。 3 i9 Z4 `' \4 y' B* r: ^
; a7 u; y# Q6 G 打开的界面中选择Flash DownLoad选项,底下默认是STM32F103RC单片机的flash文件,为512k,而当前用的STM32F103C8单片机flash为128K,所以要将原来的文件删除掉,重新添加文件。" f& J+ l2 J; y 4 R" r4 Q3 B. ^0 `& T- o 选中默认文件,点底下Remove按钮,删除原文件。 - E L! w* a! i7 J9 I
删除掉原文件后,再点Add按钮添加新文件。$ L; O `& p$ P4 c
在打开的对话框中选择第一个文件 128K大小
点Add按钮,添加新文件。5 z8 K6 \# i; \- M4 g, z
这时flash文件大小就变成128k了,最后点确定按钮。4 x4 ]" |. f5 F0 `! T
这时回到设置界面,在点OK按钮。这样设置工作就完成了,重新编译工程就可以直接使用了。) R: `" @0 T, e + U. @+ ~* x1 R7 y5 v
工程编译成功,下载到单片机中看看运行结果。% @% |' S) L X7 m3 `1 J- } t
. I- m2 B( q7 V6 g2 } 温度读取成功,说明工程移植也成功了。 3 l5 f( h" w: @+ O7 r ) m# C1 u1 ~0 Y6 _8 f |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版