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

STM32 的 硬件IIC 很好用  

[复制链接]
cuyebiren 发布时间:2016-11-21 13:46
阅读主题, 点击返回1楼
2 收藏 23 评论117 发布时间:2016-11-21 13:46
117个回答
moyanming2013 回答时间:2016-11-21 16:39:57
本帖最后由 moyanming2013 于 2016-11-22 17:02 编辑
6 g9 ~% i2 C2 @3 ~! n' i
cuyebiren 发表于 2016-11-21 14:062 Z4 s2 U% G# o- P3 c+ _
哦,但 printf 是调试神器啊、、、
更多讨论移步:https://www.stmcu.org.cn/module/forum/thread-609249-1-1.html)printf其实是什么所谓的“IO重定向”,早年间的MCU能力太弱,但串口功能总还是有的。但,现在都什么年代了,你找个带物理串口的电脑都很难了。/ p+ m/ {. {" m
ARM、STM32费了多大的劲把其它高性能IO功能,比如I2C、usb等加进来了,一些人反而不用,转而回头还去搞串口,发现电脑串口没了怎么办?!于是第三方板子还搞上USB转串口这种“无聊”的所谓的“高大上”的附加模块,再配上PC端的一个串口调试助手和示例程序以此彰显板子的能力,这显然是在传播自己的无知,这和那些仍然在使用模拟I2C的人如出一辙(I2C本来是一个现代的、高可用性的IO,51无法支持硬件I2C才出现的模拟,模拟天生不稳定,但“老人”都说模拟好,其实好吗)!
1 y( r9 e& q; W; l9 t- ^2 q8 c我非常赞同使用ST原厂的软硬件,不但能复用各种软件,而且还能学到代码良好的工程性带来的项目整体稳定和可扩展性的提升。# Y8 G1 f) P% s) \" h5 |
楼主此文就是对那些顽固不化的人的一顿打脸!
0 G3 X: K% ^! Z* O( e: i6 Y
2 f* B7 |; b: t' n" W" p+ \
  W( y$ W! h& a  N; B; }
moyanming2013 回答时间:2016-11-21 16:49:17
本帖最后由 moyanming2013 于 2016-11-22 17:03 编辑
! K0 ~( W# J* a, R- ]& y" N1 Q/ Y) f
cuyebiren 发表于 2016-11-21 14:06
% F! @- K& K& u! a8 k哦,但 printf 是调试神器啊、、、
更多讨论移步:https://www.stmcu.org.cn/module/forum/thread-609249-1-1.html)2 |0 W& c$ C6 S7 q

5 D7 {4 t6 G7 s8 S  i6 E2 L: l2 _4 Z  l) A2 o
, \* _! j- y" g5 H& S
, S- t" U, |2 V: y; r
printf不是调试,它只是你程序中输出“日志”的方式而已。一旦遇到真bug,哪还有输出“日志”的机会呢!
4 K% L* y  |3 T% j真正的调试是F5!是单步!是看内存!是看变量的值!4 H  V! y9 f, b* K, N% [. a, f
而,printf一个都达不到!
" X2 G( m9 }: A* x  i我会写一些关于真调试的测试文章的(看F769的申请是否通过吧)。
cuyebiren 回答时间:2016-11-21 17:01:01
00-405686 发表于 2016-11-21 15:408 t( G- {) R7 S# ~
说的很详细,对新人帮助很大啊

' y- G4 a7 A& o哎!我也是从新人一步步走过来的,第一次接触STM32是野火的教程,后来爱上了正点原子。。。
cuyebiren 回答时间:2016-11-21 17:03:36
zhoupxa 发表于 2016-11-21 15:59
; f! g0 W1 c" ]9 ?1 H使用CubeMx这样的自动化工具让人担心以后的单片机开发分工会越来越细,单片机工程师的技能降低,职位含金量 ...

# Y" v5 O' j5 I* z1 a- \* e这么方便的神器为什么要排斥它呢?它只是工具,人  才是 主体。单片机也是工具。。。
cuyebiren 回答时间:2016-11-21 17:09:39
moyanming2013 发表于 2016-11-21 16:49$ _5 \, L' u" {9 w  g
printf不是调试,它只是你程序中输出“日志”的方式而已。一旦遇到真bug,哪还有输出“日志”的机会呢!
. `' s: \3 h% K5 t( J4 ` ...

4 a! ~; e, m* J& N% B嗯,受教了!很期待大神的文章。
' e0 L7 [# N+ H8 H2 G# J实际项目中,用 printf 打印程序运行信息还是很方便的,不需用复杂的上位机,只需要串口调试助手。0 [: s/ [1 ~3 X0 Y; t1 e( `
另外,正点原子的重定向 可以 不用 微库
z258121131 回答时间:2016-11-21 18:45:15
学习了,谢谢咯扑住!
起名什么的炒鸡麻烦 回答时间:2016-11-21 21:54:07
本帖最后由 Ossoona 于 2016-11-21 21:58 编辑
' T; M8 N$ E6 v3 v, J2 h" V, ^
8 p. j* E! k9 S7 b  d9 d; P楼主啊,我之前也用STM32CUBEMX调通了硬件IIC,但是我有时候还是会通信卡死,楼主有遇到吗我用的是STM32F411RE和STM32F042K6$ Y# u" t. G4 B" F
中山无雪 回答时间:2016-11-21 21:59:05
moyanming2013 发表于 2016-11-21 16:39
$ d+ p9 A) y7 U# U, C0 sprintf其实是什么所谓的“IO重定向”,早年间的MCU能力太弱,但串口功能总还是有的。但,现在都什么年代 ...

- y, D- u* u" I/ B' {4 E串口输出调试信息可以帮助开发者快速定位错误,难道你写了一个几千行的软件,有复杂的处理逻辑的程序,你每次都用F5去调试每一行???# E. _0 S. f" b9 W; b1 A

! I8 e9 t  D5 g  Y8 zI2C、USB难道比UART先进多少吗?都只不过是一种通讯接口而已,尤其是USB通讯口除了大数据量通讯之外没什麽用途,开发时还需要复杂的接口库,占用大量空间,二实际MCU的使用中又有几个需要大数据高速通讯呢???
4 T" M/ b5 d5 i8 M# i* x( m
) A/ T& ?8 X+ I现在开发Contex-M的人使用模拟I2C的恐怕只有在ST的芯片上有,原因是ST提供的I2C接口不稳定或错误(去看ST的勘误表),没法办才用的,你听说过有人使用LPC、MK、AT系列的Contex-M MCU的人有使用模拟I2C的吗???人们说模拟的I2C好的原因是ST的基本没法用。
+ I. `; c6 P+ g
1 I) G" W; F/ h! B$ G当然了,ST也在不断改进自己的I2C接口,只要看过ST提供的《勘误表》就会知道的,现在ST推出的最新版本的MCU的I2C可能没问题了(最新版本的我还没用过,不知道情况到底是什麽样子),但是老板的I2C确实存在问题(只要看过勘误表就会知道)。
: @/ F0 V6 z0 m/ k- b: @* p. z# f) ]3 B$ D+ V
你说微库不好,你可以拿出一个自己的性能优越的库来让大家使用吗???!!!( @1 j. O, J  \" P2 T/ p# ?5 E
6 p0 D2 u: e: s9 N
还等什么板子呀???50块钱可以做10块PCB,什么宝上可以买到芯片,自己焊板子很快就能做出板子来,做一块板子的成本也就几十块钱,做出来就可以调试了,为何非要等别人送的板子呢?就算是学生也不差这点钱吧???!!!
原田夜舞love 回答时间:2016-11-21 22:05:21
中山无雪 回答时间:2016-11-21 22:25:11
Ossoona 发表于 2016-11-21 21:54
4 p/ O/ `1 k! {2 F. ^楼主啊,我之前也用STM32CUBEMX调通了硬件IIC,但是我有时候还是会通信卡死,楼主有遇到吗我用的是STM32F ...

$ f- X! \$ _8 O/ w) m, `最好仔细看一下《勘误表》
liuxy236@tom.co 回答时间:2016-11-21 22:30:35
                                
peter001 回答时间:2016-11-22 00:37:24
支持一下
zengyi703-16313 回答时间:2016-11-22 08:18:25
谢楼主分享
没事逛荡 回答时间:2016-11-22 09:24:20
moyanming2013 发表于 2016-11-21 16:49
2 W7 R7 y$ g3 ~- sprintf不是调试,它只是你程序中输出“日志”的方式而已。一旦遇到真bug,哪还有输出“日志”的机会呢!
$ R6 k7 k, e& n; O ...
9 b5 [" x0 c2 F: o
感觉串口打印还是很有必要的。很多时候,由外部触发的事件,需要查看一系列的变化,靠F5调试,很难达到效果吧?当然,不是说仿真调试用处不大,两者都需要。个人愚见。
cuyebiren 回答时间:2016-11-22 10:45:39
Ossoona 发表于 2016-11-21 21:54
: B( e+ [; C+ I, E1 E" J. h楼主啊,我之前也用STM32CUBEMX调通了硬件IIC,但是我有时候还是会通信卡死,楼主有遇到吗我用的是STM32F ...
3 {& Q7 C  A. m
没遇到过,我只是跑跑例程,实际项目没用过。。。如果解决不了,你还是用IO模拟吧。。。

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版