求一个STM8作为SPI从机的程序,求指导。。

2019-07-19 21:10发布

目前在做一个项目,需要双机通信,主机STM32F407,从机STM8F103,正在头痛从机SPI的问题。

主要是CS脚和中断的处理比较晕,参考了一下附件中风驰的SPI从机程序, 他定义的SPI_CS在PE6,但是没有在PE的中断服务函数里看到任何内容,反而在SPI_IRQ里执行,不太理解怎么放PE6就好了?
或者说这就是硬件NSS的中断服务?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
陈磊_Oliver
1楼-- · 2019-07-20 18:29
 精彩回答 2  元偷偷看……
落月枫情
2楼-- · 2019-07-20 22:48
单纯的做从机应该就不用返回数据了吧,直接在中断中接收就OK吧?
落月枫情
3楼-- · 2019-07-21 02:29
回复【3楼】brook_z:
---------------------------------
  if((spi_cnt == 0)&&((data_buffer == 0xef)||(data_buffer == 0x7e))) 
这个语句后半部分是做的协议吗?
data_buffer == 0x7e或是0xef
落月枫情
4楼-- · 2019-07-21 07:55
 精彩回答 2  元偷偷看……
落月枫情
5楼-- · 2019-07-21 10:54
回复【7楼】wz18th:
---------------------------------
硬件NSS是在主从机初始化的时候都配置为硬件吗
huzi741
6楼-- · 2019-07-21 13:14
楼主:从机STM8S用NSS用硬件模式,由主机发送NSS,不能接收到数据,但是用软件模式就可以这是为什么呀
void APP_SPI_Init(void)
{
     SPI_DeInit();
     SPI_Init( SPI_FIRSTBIT_MSB,
              SPI_BAUDRATEPRESCALER_2,
              SPI_MODE_SLAVE, SPI_CLOCKPOLARITY_HIGH,
              SPI_CLOCKPHASE_2EDGE,
              SPI_DATADIRECTION_2LINES_FULLDUPLEX,
              SPI_NSS_SOFT, 7);
        SPI_ITConfig(SPI_IT_RXNE, ENABLE);
    SPI_NSSInternalSoftwareCmd(DISABLE);       
        SPI_Cmd(ENABLE);
        SPI_SendData(SPI_SendBuffer[0]);
}

一周热门 更多>