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

STM32F7的SPI2配置问题

[复制链接]
shiweicl1314 提问时间:2017-1-26 19:44 /
   今天在写LCD屏的触摸程序XPT2046调试了1个小时都没调通SPI配置的8位模式,最后没办法了就用逻辑分析仪抓捕了SPI2的时序发现SPI尽然是16位模式,比如发送字节1=0XAA,字节2=0X55,总线上实际是发送的是0XAA00和0X5500,经过测试无论是把CR2的DataSize位设置成几SPI实际工作模式都是16位,猜想估计是值没写进寄存器然后仿真看了CR2的DS位正确写入了0x7但是就是无法配置成8位!这个是不是STM32F7的BUG??
收藏 1 评论4 发布时间:2017-1-26 19:44

举报

4个回答
zoomdy 回答时间:2017-1-26 21:31:57
可以看看勘误手册有没有相关的描述。
wenyangzeng 回答时间:2017-1-27 07:36:38
本帖最后由 wenyangzeng 于 2017-1-27 07:46 编辑

这是我几年前遇到的问题,可以供你参考:
https://www.stmcu.org.cn/module/forum/thread-566825-1-1.html
解决方法在7楼,然后你可以在HAL中如法炮制。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

shiweicl1314 回答时间:2017-1-28 10:46:23
wenyangzeng 发表于 2017-1-27 07:36
这是我几年前遇到的问题,可以供你参考:
https://www.stmcu.org.cn/module/forum/thread-566825-1-1.html
解决 ...

STM32F7的SPI的确是增加了FIFO,不过FIFO我进行了配置结果还是一样,我使用的寄存器操作没有用官方库,不知道你有没有找出具体的原因呢?
shiweicl1314 回答时间:2017-1-28 12:13:19
本帖最后由 shiweicl1314 于 2017-1-28 12:18 编辑

问题解决了,的确是F7的BUG!
UINT32 *data_reg =&SPIx_DR;  //先获得SPI数据寄存器地址

发送时: *(UINT8 *)data_reg =Data;
接收时: Data =*(UINT8 *)data_reg;


如果是直接操作寄存器无论数据长度设置为几位结果数据传送都是16位.
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版