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

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

查看全部评分

七哥 回答时间: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等频率和理论值,所以应该怎么改呢?
七哥 回答时间: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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版