今天在写LCD屏的触摸程序XPT2046调试了1个小时都没调通SPI配置的8位模式,最后没办法了就用逻辑分析仪抓捕了SPI2的时序发现SPI尽然是16位模式,比如发送字节1=0XAA,字节2=0X55,总线上实际是发送的是0XAA00和0X5500,经过测试无论是把CR2的DataSize位设置成几SPI实际工作模式都是16位,猜想估计是值没写进寄存器然后仿真看了CR2的DS位正确写入了0x7但是就是无法配置成8位!这个是不是STM32F7的BUG?? |
ST的hal库有问题手头有STM32L4或STM32F7的帮忙测试DMA SD卡
STM32F756 DCMI +GC0308 Camera图片不正常
STM32F722RET6无法被JLINK/STLIN和IAR/KEIL识别
STM32F767以太网换PIN脚无数据
STM32F7 DSP库使用
没有人分享一下STM32F767 硬JPEG 编码解码吗
求STM32F777与FPGA通过FMC通信的参考设计
求STM32F7 1.15版本 固件库
STM32F746使用HAL库串口无法中断收数据
STM32F7xx AXIM & ITCM
这是我几年前遇到的问题,可以供你参考:
https://www.stmcu.org.cn/module/forum/thread-566825-1-1.html
解决方法在7楼,然后你可以在HAL中如法炮制。
评分
查看全部评分
STM32F7的SPI的确是增加了FIFO,不过FIFO我进行了配置结果还是一样,我使用的寄存器操作没有用官方库,不知道你有没有找出具体的原因呢?
问题解决了,的确是F7的BUG!
UINT32 *data_reg =&SPIx_DR; //先获得SPI数据寄存器地址
发送时: *(UINT8 *)data_reg =Data;
接收时: Data =*(UINT8 *)data_reg;
如果是直接操作寄存器无论数据长度设置为几位结果数据传送都是16位.