STC15W4K58S4单片机SPI通讯实验1
SPI通讯实验1:
一个主机,一个从机,三线连接,不需要片选线。PC机通过串行口向主单片机发送一个字节的数据,主单片机接收到后向从机发送这个字节,从机接收后将数据返回给主机,主机再将数据通过串行口发送回PC机。
串行口波特率9600bps 无奇偶校验 8个数据位 1个停止位
单片机系统时钟频率SYS_clk=22.1184MHz
SPI通信速率SYS_clk/4
电路连接图:
两个单片机可以使用不同的供电电源,但是要共地,串行口的地线也要与两个单片机共起来。
两块单片机的SPI引脚连接时,中间一定要串联上240欧的电阻,以防止程序失误出现端口短路烧毁的情况!
采用寄存器引脚切换,SPI_S1 SPI_S0
0 1
/SS:P2.4 MOSI:P2.3 MISO:P2.2 SCLK:P2.1
主机从机都使用这组引脚作为SPI通信端口。主机采用查询方式,从机采用SPI中断方式。
使用SPI通讯需要设置 SPCTL寄存器
位号 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
位名称 |
SSIG |
SPEN |
DORD |
MSTR |
CPOL |
CPHA |
SPR1 |
SPR0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
对于主机,永远无需使用片选线所以SSIG位置1(不使用片选SS)
启动SPI硬件通讯,SPEN=1