你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103和STM32F107串口输出有什么区别?

[复制链接]
zzuzph 提问时间:2018-5-6 21:58 /
最近把103的程序移植到107上,串口通信输出的都是乱码,波特率和时钟都调整过了,同样的程序在103上能正常输出为什么在107上就是乱码?
这两款芯片有什么地方不兼容吗?
收藏 评论9 发布时间:2018-5-6 21:58

举报

9个回答
feixiang20 回答时间:2018-5-6 23:34:32
两个系列的处理器都是以“stm32”为开头的,即这两个都是stm32芯片,是意法半导体为ARM Cortex-M3内核出的用于自动控制领域的微处理器。F107是互联型接口,且内部资源较多,F103是增强型(比F101强),相比F103,F107加入IEEE以太网接口,2个IIS音频接口(做音频解码用),全部64KByte的SRAM缓存。除此之外,两系列的芯片基本相同。这2款芯片有容量区别 128/48和256/64(K),集成的外设就有很多区别了,107支持网络,支持OTG,可以有以太控制器,103是没有的,然后集成的flash和SRAM大小也不同,107大了很多。串口都是5个,如果使用ST提供的标准固件库,完全通用,STM32F1xx全系列通用,你只要注意更换合适的stm32f10x.h就行。另外库里面默认外部时钟是不一样的。原有的103代码只能参考,不能简单拷贝,近乎重新编写,因为要一一核实相关寄存器的含义。你换个107再看看呢。
1.png

评分

参与人数 2ST金币 +2 蝴蝶豆 +5 收起 理由
zero99 + 5
MrJiu + 2

查看全部评分

toofree 回答时间:2018-5-7 09:14:53
本帖最后由 toofree 于 2018-5-7 11:32 编辑

串口没区别,看一下你的时钟设置
你的用的标准固件库吗?F103固件库中默认外部时钟是8M,F105和F107有可能是25M,还有多处不一样。详细请参考文件“system_stm32f10x.c”

傲游截图20180507113052.png

如果是用的HAL库,那么也请参考相应文件。



评分

参与人数 2ST金币 +2 蝴蝶豆 +3 收起 理由
zero99 + 3
MrJiu + 2

查看全部评分

wudianjun2001 回答时间:2018-5-7 09:45:18
可以用107建个底层的工程,然后把103的应用代码移植过去

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

butterflyspring 回答时间:2018-5-7 10:43:57
来一个直接的方法,直接调试,对比一下两个芯片的uart的寄存器值,就知道了,如果还不行,就看RCC咯

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

thereborn000 回答时间:2019-4-22 11:32:16
toofree 发表于 2018-5-7 09:14
串口没区别,看一下你的时钟设置
你的用的标准固件库吗?F103固件库中默认外部时钟是8M,F105和F107有可 ...

QQ图片20190422112957.png
您好,我遇到了同样问题,我用的是f107的板子,stm32f10x.c中定义的是25M的HSE,然而我板子上焊的是8M的晶振,但是stm32f10x.c不能修改(带锁),应该怎么办呀?
thereborn000 回答时间:2019-4-22 11:43:28
toofree 发表于 2018-5-7 09:14
串口没区别,看一下你的时钟设置
你的用的标准固件库吗?F103固件库中默认外部时钟是8M,F105和F107有可 ...

既然是STM32F107的程序,把预定义改为STM32F10X_CL。
STM32F10X_CL默认的外部晶振频率是25MHZ,我板上焊的是8MHZ,这样的话造成所有频率都随之加快3.1倍(25/8=3.1),
所以,把#define HSE_VALUE    ((uint32_t)25000000) 改为#define HSE_VALUE    ((uint32_t)8000000) ,
但这样问题又来了:串口频率倒是正常了,但随之而来的是systick、can等频率和理论值,所以应该怎么改呢?
toofree 回答时间:2019-4-22 15:52:16
thereborn000 发表于 2019-4-22 11:43
既然是STM32F107的程序,把预定义改为STM32F10X_CL。
STM32F10X_CL默认的外部晶振频率是25MHZ,我板上焊 ...

把F103的这段代码复制过来就可以了,或者照着改,因为F103是8M外部晶振。
usart、systick、can这些是跟SystemCoreClock有关系的,所以你得想办法把这个时钟搞对,让这个时钟与你的PLL设置的倍频、分频系数算下来的一致。
五哥1 回答时间:2019-4-22 18:17:54
确认芯片管脚都是相同的?排除芯片问题,串口程序应当通用。
zxcv1ddd 回答时间:2019-4-22 21:50:24
多谢分享

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版