打印
[STM8]

SPI Slave设备

[复制链接]
504|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llljh|  楼主 | 2020-6-21 20:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用STM8S103作为SPI Slave设备,但是STM8中断里面收到的全是0x1,收不到正确的数据,STM8发送看起来是对的

使用特权

评论回复
沙发
juventus9554| | 2020-6-21 20:54 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
llljh|  楼主 | 2020-6-21 20:58 | 只看该作者
void spi_slave_init()
{
    //NSS
    GPIOA->DDR &= ~SPI_SSEL_PIN; //输入模式
    GPIOA->CR1 &= ~SPI_SSEL_PIN; //浮空输入
    GPIOA->ODR &= (uint8_t)~SPI_SSEL_PIN; //write low

    GPIOC->DDR |= SPI_MISO_PIN; //输出模式
    GPIOC->CR1 |= SPI_MISO_PIN; //推挽输出
   
    GPIOC->DDR &= ~SPI_MOSI_PIN; //输入模式
    GPIOC->CR1 &= ~SPI_MOSI_PIN; //浮空输入
   
    GPIOC->DDR &= ~SPI_CLK_PIN;  //输入模式
    GPIOC->CR1 &= ~SPI_CLK_PIN;  //浮空输入
   
        SPI_DeInit();        
        // Initialize SPI in Slave mode, NSS hardwere management  */
        SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_2, SPI_MODE_SLAVE, SPI_CLOCKPOLARITY_HIGH,
                SPI_CLOCKPHASE_2EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT,(uint8_t)0x07);
        SPI_ITConfig(SPI_IT_RXNE, ENABLE);// Receive buffer not empty interrupt Enable
        SPI_Cmd(ENABLE); // SPI enable
}

uint8_t spi_rw(uint8_t byte)
{
    char ch = 0;
   
    while (SPI_GetFlagStatus(SPI_FLAG_TXE) == RESET);
    SPI->DR = byte;

    while(SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET);
    ch = ((uint8_t)SPI->DR);
   
    return ch;
}

INTERRUPT_HANDLER(SPI_IRQHandler, 10)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
  uint8_t Rx_byte;
  Rx_byte = spi_rw(0x18);
  printf("%x ", Rx_byte);
}
中断里面收到的打印全是0x1,不知道什么原因啊,但是SPI Master可以收到stm8发送的0x18

使用特权

评论回复
地板
dingy| | 2020-6-21 21:01 | 只看该作者

uint8_t spi_rw(uint8_t byte)
你这个函数干嘛呀?
先发送后接受,改成单独的发送或接受试下;

使用特权

评论回复
5
renyaq| | 2020-6-26 09:36 | 只看该作者

//bbs.21ic.com/icview-2046110-1-1.html

使用特权

评论回复
6
supernan| | 2020-6-26 09:40 | 只看该作者
看起来这个spi_rw不适合在ISR里面用。

使用特权

评论回复
7
yinxiangh| | 2020-6-26 09:43 | 只看该作者
没用过主从这种的

使用特权

评论回复
8
xxmmi| | 2020-6-26 09:46 | 只看该作者
用示波器看看是什么波形

使用特权

评论回复
9
wangpe| | 2020-6-26 09:51 | 只看该作者
波特率匹配吗

使用特权

评论回复
10
llljh|  楼主 | 2020-6-26 09:54 | 只看该作者
其实还是不大明白,我再琢磨琢磨吧,多谢了哈

使用特权

评论回复
11
xiaoqizi| | 2020-7-9 17:08 | 只看该作者
如何确认发送没有问题呢

使用特权

评论回复
12
木木guainv| | 2020-7-9 17:08 | 只看该作者
从设备配置有没有问题  需要确认下

使用特权

评论回复
13
磨砂| | 2020-7-9 17:09 | 只看该作者
每次都是这样的现象吗

使用特权

评论回复
14
晓伍| | 2020-7-9 17:09 | 只看该作者
应该是代码的问题

使用特权

评论回复
15
八层楼| | 2020-7-9 17:10 | 只看该作者
楼主问题解决了吗

使用特权

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

本版积分规则

855

主题

11301

帖子

6

粉丝