stm32f051配置SPI数据宽度为8位!但是。。。。。。。。

[复制链接]
4266|5
 楼主| duljsky 发表于 2013-5-2 18:07 | 显示全部楼层 |阅读模式
本帖最后由 duljsky 于 2013-5-3 08:27 编辑

将SPI配置成单线双向只发模式,但是用示波器观察到再发送一个字节的数据时,CLK居然有16个脉冲,有些凌乱,不知道有没有大侠遇到这种情况!?也就是我发一个字节,后面还跟着一个全零的字节~求解答!
代码如下:







问题解决了!!!!由于我是寄存器操作的,对一个字节数据进行写时用的SPI1->DR = data;但是DR为16位寄存器,所以导致两个字节在发送。参考了一下库函数,现在改成*(uint8_t *)(&SPI1->DR) = data;完美解决。

初始化代码

初始化代码
cjhk 发表于 2013-5-2 18:37 | 显示全部楼层
难道是传输的协议不对    你把程序的协议修改一下 看看
cjhk 发表于 2013-5-2 18:38 | 显示全部楼层
帮你顶一个   看看有没有高手能够解决这个问题
xyz769 发表于 2013-5-2 19:13 | 显示全部楼层
上层协议规定吧。。贴代码看看就知道了。
 楼主| duljsky 发表于 2013-5-2 19:17 | 显示全部楼层
cjhk 发表于 2013-5-2 18:37
难道是传输的协议不对    你把程序的协议修改一下 看看

就是SPI的初始化配置呀!之前我用的205的片子没问题啊
 楼主| duljsky 发表于 2013-5-2 19:20 | 显示全部楼层
xyz769 发表于 2013-5-2 19:13
上层协议规定吧。。贴代码看看就知道了。

就是用SPI来控制液晶,感觉还是初始化有问题,我喜欢用寄存器操作,和我之前205的配置对比了一下也没有不同的地方,我是不是哪疏忽了啊?!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:日行一善

18

主题

127

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部