打印

我晕了,有人知道吗?STM8 SPI

[复制链接]
5007|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sdpz|  楼主 | 2011-4-20 20:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sdpz 于 2011-4-20 20:49 编辑



void SPI_WriteByte(unsigned char dat)
{
    while (!(SPI->SR & SPI_SR_TXE));
    SPI->DR = dat;
}

void main()
{
.............
    SPI_WriteByte(0x90);
    LED_ON(LED1);
    SPI_WriteByte(0x00);
    LED_ON(LED2);
    SPI_WriteByte(0x00);
    SPI_WriteByte(0x00);
...........

}

SPI_WriteByte函数第一次可以跳出循环,第二次就不行了。太诡异了!!!

相关帖子

沙发
sdpz|  楼主 | 2011-4-20 20:53 | 只看该作者
难道...写入的时候清零了,然后它根本就没发送?

使用特权

评论回复
板凳
sdpz|  楼主 | 2011-4-21 08:44 | 只看该作者
昨晚战斗到1点,所有问题通通解决了.

1. SPE要在配置好SPI的所有寄存器后才使能
2. 使用IO控制片选时,必须用软件模式
3. 和SPI对应GPIO口配置好输入输出
4. 数据线尽量不要太长、拼接,否则容易出错

使用特权

评论回复
地板
goldwing| | 2011-6-30 13:30 | 只看该作者
楼上的,如果不3. 和SPI对应GPIO口配置好输入输出
还可以写,
如果3. 和SPI对应GPIO口配置好输入输出
程序就死翘翘了

使用特权

评论回复
5
goldwing| | 2011-6-30 13:31 | 只看该作者
我用的是固件库开发**

使用特权

评论回复
6
goldwing| | 2011-6-30 13:31 | 只看该作者
我用的是固件库开发**

使用特权

评论回复
7
wenzj12345| | 2011-11-24 20:38 | 只看该作者
我现就是发送和接收数据没有一次是对,不知道怎么回事。但我没有配置GPIO的输入和输出。没配置能行吗?

使用特权

评论回复
8
yusun789| | 2013-9-21 17:20 | 只看该作者
sdpz 发表于 2011-4-21 08:44
昨晚战斗到1点,所有问题通通解决了.

1. SPE要在配置好SPI的所有寄存器后才使能

very perfect

使用特权

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

本版积分规则

0

主题

300

帖子

1

粉丝