打印

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

[复制链接]
3854|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 duljsky 于 2013-5-3 08:27 编辑

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







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

WP_20130502_002.jpg (2.21 MB )

初始化代码

初始化代码
沙发
cjhk| | 2013-5-2 18:37 | 只看该作者
难道是传输的协议不对    你把程序的协议修改一下 看看

使用特权

评论回复
板凳
cjhk| | 2013-5-2 18:38 | 只看该作者
帮你顶一个   看看有没有高手能够解决这个问题

使用特权

评论回复
地板
xyz769| | 2013-5-2 19:13 | 只看该作者
上层协议规定吧。。贴代码看看就知道了。

使用特权

评论回复
5
duljsky|  楼主 | 2013-5-2 19:17 | 只看该作者
cjhk 发表于 2013-5-2 18:37
难道是传输的协议不对    你把程序的协议修改一下 看看

就是SPI的初始化配置呀!之前我用的205的片子没问题啊

使用特权

评论回复
6
duljsky|  楼主 | 2013-5-2 19:20 | 只看该作者
xyz769 发表于 2013-5-2 19:13
上层协议规定吧。。贴代码看看就知道了。

就是用SPI来控制液晶,感觉还是初始化有问题,我喜欢用寄存器操作,和我之前205的配置对比了一下也没有不同的地方,我是不是哪疏忽了啊?!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:日行一善

18

主题

127

帖子

1

粉丝