SPI如何在初始化后再次修改CPOL和CPHA属性

2019-07-21 02:46发布

我用片上的SPI3连接了2个SPI从站,但是看SPI从站芯片手册1个需要时钟处于高电平,下降沿采样;1个需要时钟空闲时低电平,上升沿采样。
现在我分别与1个SPI从站通讯,通过初始化时修改CPOL的属性,2个片子都能通讯成功。
现在我需要与2个片子通讯,我想问的是:
1 与第一个芯片通讯时,通过整体更改属性的方式(修改SPIx_Init())更改CPOL属性,与第2个芯片通讯时再整体更改属性?
2 还是用下面的函数修改?
void changeSPICPOL(u8 level)
{
 if(level ==0)
  SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low;
 else
  SPI_InitStruct.SPI_CPOL = SPI_CPOL_High;
 SPI_Cmd(Open_SPI3, ENABLE);
}
InitStruct 定义为全局,其它属性在初始化时已经设置了值。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-21 06:18
帮顶。。。。。
田运辉
2楼-- · 2019-07-21 09:45
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-21 11:29
可以动态修改的。
只是你那代码是不行,你修改了参数,还得初始化SPI
建议直接用寄存器吧。
caosix
4楼-- · 2019-07-21 17:09
回复【4楼】正点原子:
---------------------------------
9494 —— 直接用 寄存器,,想怎么着 就怎么着,

完全 不需要 做 什么 结构体 初始化,,累。。

一周热门 更多>