钻石会员
  
主题
帖子
积分11732
阅读权限50
注册时间2013-9-14
最后登录1970-1-1
在线时间 小时
|
csdn扒了个SPI的驱动,改了下在STC15单片机下不能正常使用,读取全是0xFF。目前用到的案例是CPOL不限,CPHA =1。也就是1和3模式:
//CPOL:规定了SCK时钟信号空闲状态的电平(0-低电平,1-高电平)
//CPHA:规定了数据是在SCK时钟的上升沿还是下降沿被采样(0-第一个时钟边沿开始采样,1-第二个时钟边沿开始采样)
//模式0:CPOL=0,CPHA =0 SCK空闲为低电平,数据在SCK的上升沿被采样(提取数据)
//模式1:CPOL=0,CPHA =1 SCK空闲为低电平,数据在SCK的下降沿被采样(提取数据)
//模式2:CPOL=1,CPHA =0 SCK空闲为高电平,数据在SCK的下降沿被采样(提取数据)
//模式3:CPOL=1,CPHA =1 SCK空闲为高电平,数据在SCK的上升沿被采样(提取数据)
- #ifndef __SPI_H
- #define __SPI_H
- #define FOSC 22118400UL
- #define BAUD 115200
- #include "STC15W4K.H"
- #include<intrins.h>
- typedef unsigned char u8;
- typedef unsigned int u16;
- #define CS_L P16=0
- #define CS_H P16=1
- #define SCK_L P15=0
- #define SCK_H P15=1
- #define MOSI_L P13=0
- #define MOSI_H P13=1
- #define MISO P44
- u8 SOFT_SPI_RW_MODE(u8 write_dat);
- u8 SPI2_ReadWriteByte(u8 TxData);
- #endif
复制代码 spi.c
|
|