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

F072 SPI 通讯异常

[复制链接]
waiman 发布时间:2019-9-4 18:05
使用STM32F072C8T6芯片驱动OLED,从F103标准库移植到HAL库,发现一个很奇葩的问题。$ `* K$ Q& h3 W0 b2 X3 w1 W
如果用HAL库内的 HAL_SPI_TransmitReceive 函数,SCK可以正常发出8bit的波形。9 ^5 G, w) W8 W. k8 P% t) G3 d6 l" U- l
但自己写的驱动函数,SCK都会发出16bit的波形。; O" n3 e0 y+ K, h; ~

+ X( X! e& c% O5 t, \8 A正常的8bit波形:
& _# j2 D' X4 C: Y- U 8bit.PNG : t" o+ B1 @# i% K0 d/ y

: k/ Y& S$ `$ R# \; m/ N
5 U) s  \) p8 X% T. _: L异常的16bit波形:
4 F% h: K  `, o' J5 N, G2 l 16bit.png
3 v; a" L* U3 w! E) V& a* e+ t6 a+ q4 t

  f8 p* k; i1 D" Y8 X0 s经过对HAL库单步调试发现,原来是DR寄存器的访问地址方式,决定了SCK的位数!!!!!
# B9 ~  d( j* G; _+ ^, b与F1系列不同的是,F0的SCK的位数并不受CR2的DS位约束* d* E" j' Z4 G5 ]
DR如果看作是16bit地址写入,SCK发出16bit长度。就算是DS标志工作在8BIT模式!+ U: `7 O% a0 T( I
DR看作是8bit地址写入,SCK发出8bit长度。
7 ]3 G, x1 `+ A2 ?/ ]9 ` hal.PNG 1 V/ F8 M: n# Q/ l& P
, {# h6 u, G) u
* q  h0 o% M: W/ f3 Y8 X+ [
而是根据DR寄存的写寄存器地址长度决定的!. |' A- n  n+ {
DS.PNG * w/ s6 s8 \! Q9 N( c& A" C6 U

5 ~7 U$ P5 c; u5 z
赞 收藏 评论0 发布时间:2019-9-4 18:05

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版