本帖最后由 zhange 于 2024-5-19 14:21 编辑
第二十七集:软件模拟SPI
1.spi 另一个总线 同步串口
上节学的单总线(one-wire)只有一根数据线,系统中的数据交换、控制都由这根线完成。
2. 通信方式
3. 看了一遍看得不是很懂
====二刷吧====
4.这里是模拟的spi把,并不是硬件的。
5.产生时钟的一侧称为主机,另一侧从机。。
6.时钟极性和时钟相位共同控制spi的模式。
7.msb和lsb这里是软件模拟 先发哪个都行。。。
8.写一个字节
- //写一个字节
- void spiXieByte(unsigned char i )
- {
- unsigned char q;
- for(q = 0; q<8 ; q++)
- {
- if(i & 0x80)
- {
- MOSI = 1;
- }else
- {
- MOSI = 0;
- }
- SCLK = 1;
- SCLK = 0;
- i = i<<1;
- }
- }
复制代码
9.读一个字节
- //读一个字节
-
- unsigned char spiDuByte(void)
- {
- unsigned char i;
- unsigned char dat = 0;
- SCLK = 0;
- for(i=0; i<8; i++)
- {
- SCLK = 1;
- dat = dat<<1;
- if(MISO)
- {
- dat = dat|1;
- }else
- {
- dat = dat|0;
- }
- SCLK = 0;
- }
-
- return dat;
- }
复制代码
10.初始化
- void spiInit(void)
- {
- CS = 1;
- MISO = 1
- WP = 1;
- MOSI = 1
- SCLK = 0;
- }
复制代码
最后:写程序成功
|