nanang 发表于 2023-3-29 15:11:48

SPI函数直接调用就可以使用了吗?

void        SPI_config(void)
{
        SPI_InitTypeDef                SPI_InitStructure;
        SPI_InitStructure.SPI_Enable    = ENABLE;                                                //SPI启动    ENABLE, DISABLE
        SPI_InitStructure.SPI_SSIG      = ENABLE;                                                //片选位   ENABLE, DISABLE
        SPI_InitStructure.SPI_FirstBit= SPI_MSB;                                        //移位方向   SPI_MSB, SPI_LSB
        SPI_InitStructure.SPI_Mode      = SPI_Mode_Master;                //主从选择   SPI_Mode_Master, SPI_Mode_Slave
        SPI_InitStructure.SPI_CPOL      = SPI_CPOL_Low;                        //时钟相位   SPI_CPOL_High,   SPI_CPOL_Low
        SPI_InitStructure.SPI_CPHA      = SPI_CPHA_2Edge;                //数据边沿   SPI_CPHA_1Edge,SPI_CPHA_2Edge
        SPI_InitStructure.SPI_Speed   = SPI_Speed_4;                        //SPI速度    SPI_Speed_4, SPI_Speed_16, SPI_Speed_64, SPI_Speed_128
        SPI_Init(&SPI_InitStructure);
        NVIC_SPI_Init(ENABLE,Priority_3);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
       
        SPI_SW(SPI_P22_P23_P24_P25);        //SPI_P12_P13_P14_P15,SPI_P22_P23_P24_P25,SPI_P74_P75_P76_P77,SPI_P35_P34_P33_P32
        SPI_SS_2 = 1;
}
我只需要改变这个(SPI_InitStructure.SPI_Mode      = SPI_Mode_Master;)的主从选择是不是就可以直接实现STC8A8K64S4A和STC8H3K64S4之间通过硬件SPI通信?


有使用函数的教程吗

神农鼎 发表于 2023-3-29 16:21:01


乘风飞扬 发表于 2023-3-29 19:08:02

改一下配置参数就可以设置为主机模式或者从机模式。
主机模式设置:SPI_Mode      = SPI_Mode_Master;
此外建议设置:SPI_SSIG      = DISABLE; //忽略SS脚确定主从功能
附件是一个主机,一个从机的例子,供参考。

李白白 发表于 2024-6-30 12:50:02

请问使用之前需不需要初始化一下引脚呢

李白白 发表于 2024-6-30 13:52:09

乘风飞扬 发表于 2023-3-29 19:08
改一下配置参数就可以设置为主机模式或者从机模式。
主机模式设置:SPI_Mode      = SPI_Mode_Master;
此外 ...

请问这种库函数例程在哪找

soma 发表于 2024-6-30 14:52:28

李白白 发表于 2024-6-30 13:52
请问这种库函数例程在哪找

下载库函数,库函数文件夹里面有例程

乘风飞扬 发表于 2024-7-1 08:59:00

李白白 发表于 2024-6-30 13:52
请问这种库函数例程在哪找

官网、论坛上都可以下载:
https://www.stcaimcu.com/plugin.php?id=mdown:index#/~cateid=7&key=

李白白 发表于 2024-7-3 16:20:42

NVIC_SPI_Init(ENABLE,Priority_3);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
      
      SPI_SW(SPI_P22_P23_P24_P25);      //SPI_P12_P13_P14_P15,SPI_P22_P23_P24_P25,SPI_P74_P75_P76_P77,SPI_P35_P34_P33_P32
      SPI_SS_2 = 1;
请问这几条语句的作用是啥呀 必须加吗

276564663@qq 发表于 2024-7-23 23:21:51

李白白 发表于 2024-7-3 16:20
NVIC_SPI_Init(ENABLE,Priority_3);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority ...

第一条是初始化SPI功能
第二条是初始化SPI的IO引脚
第三条是设置片选引脚为高电平(让设备处于没有被选中状态)

jy00764061 发表于 2024-10-17 23:03:27

我一个单片机,需要控制两个DAC,一般怎么使用,是在用第1个SPI的时候初始化一下IO引脚,在使用第2个SPI接口的时候,再重新初始化一下引脚。还是其它方法,在线请教中。
页: [1] 2
查看完整版本: SPI函数直接调用就可以使用了吗?