关于SPI时钟没有输出的问题
SPI是不是只要发送数据,就会有时钟信号?现在时有数据发送出去,但是却没有时钟信号输出,我是这样设置的:主控模式,SDO由模块控制,8位传输,中间采样,CKE=0,SSEN=0,CKP=1,SPRE<2:0>=111(1:1),PPRE<1:0>=00(64:1),SPI帧禁止和使能都设置过。请熟悉SPI通讯的指点一下,谢谢!
初始化代码:
PIN_SPI:
bclr TRISG,#6 ;SCK
bset TRISG,#7 ;SCI
bclr TRISG,#8 ;SCO
bclr TRISG,#9 ;SS
bclr LATG,#9
_SPIInit:
bclr IFS1,#10
bset IEC1,#10
bset IPC3,#6
bset IPC3,#5
bset IPC3,#4
mov #0x407c,w0
mov w0,SPI2CON
clr SPI2STAT
bset SPI2STAT,#15
使用的IC:dspic30f5013
资料内容:
SPI 串行接口由以下四个引脚组成:
• SDIx:串行数据输入
• SDOx:串行数据输出
• SCKx:移位时钟输入或输出
• SSx:低电平有效从动选择或者帧同步I/O 脉冲
SPI 主控模式和帧主控模式,通过将MSTEN (SPIxCON<5>)和FRMEN (SPIxCON<14>)位置1 并将SPIFSD,(SPIxCON<13>)位清零可使能此帧SPI 模式。在此模式下,无论模块是否正在发送,串行时钟都将在SCKx 引脚连续输出。
可是现在就是没有时钟输出!
初始化代码:
PIN_SPI:
bclr TRISG,#6 ;SCK
bset TRISG,#7 ;SCI
bclr TRISG,#8 ;SCO
bclr TRISG,#9 ;SS
bclr LATG,#9
_SPIInit:
bclr IFS1,#10
bset IEC1,#10
bset IPC3,#6
bset IPC3,#5
bset IPC3,#4
mov #0x407c,w0
mov w0,SPI2CON
clr SPI2STAT
bset SPI2STAT,#15
使用的IC:dspic30f5013
资料内容:
SPI 串行接口由以下四个引脚组成:
• SDIx:串行数据输入
• SDOx:串行数据输出
• SCKx:移位时钟输入或输出
• SSx:低电平有效从动选择或者帧同步I/O 脉冲
SPI 主控模式和帧主控模式,通过将MSTEN (SPIxCON<5>)和FRMEN (SPIxCON<14>)位置1 并将SPIFSD,(SPIxCON<13>)位清零可使能此帧SPI 模式。在此模式下,无论模块是否正在发送,串行时钟都将在SCKx 引脚连续输出。
可是现在就是没有时钟输出!
...全文
相关推荐
GPIO模拟SPI_stm32模拟_STM32模拟SPI_stm32用GPIO模拟SPI通讯_STM32SPI模拟_stm32g
基于STM32等ARM芯片,使用通用GPIO模拟SPI通讯,SPI通讯协议详解
模拟SPI程序(C语言)
模拟SPI程序(C语言).用于没有SPI接口的单片机
SPI原理+主从设备Verilog源码+仿真波形
讲述了SPI总线原理,提供主从设备Verilog源码及仿真波形,对初学者有帮助
在ARM Linux下使用GPIO模拟SPI时序详解
在ARM Linux下使用GPIO模拟SPI时序详解.pdf
SPI总线通信问题
SPI总线的主要特点;SPI总线工作方式;SPI总线常见错误


驱动开发/核心开发
