配置了SPI参数,可SPI_SCK没信号输出???
;下面的汇编定义了SPI1GPIOA_ EQU 0x40010800 ;端口A基址
SPI1_ EQU 0x40013000 ;SPI1控制基址
RCC_ EQU 0x40021000 ;时钟控制基址
NVIC_ EQU 0xE000E000 ;中断控制基址
;*****************程序段*************************
AREA TEST,CODE,READONLY
;SPI通讯中断-------------------------------------------------
SPI1_IRQHandler PROC
PUSH {LR}
LDR R0,=GPIOA_ ;GPIOA端口A基址
LDR R1, ;GPIOA_ODR端口输出数据寄存器
EOR R1,#0X00000002 ;PA1输出脉冲信号
STR R1,
LDR R1,=SPI1_ ;0x40013000SPI1基址
LDR R0,
MOV R0,#0
STR R0, ;清RXNE接收缓冲非空状态标志 ;
MOV R0,#0X55
STR R0,
POP {PC}
ENDP
;主程序---------------------------------------------------------------
Reset_Handler PROC
ENTRY
LDR R0,=RCC_ ;0x40021000时钟控制基址
MOV R1,#0X1005 ;SPI1,GPIOA端口时钟使能
STR R1, ;RCC_APB2ENR外设时钟使能寄存器
LDR R0,=GPIOA_ ;GPIOA端口基址
LDR R1,=0X34334434 ;配置PA1,PA4,PA5,PA6,PA7
STR R1, ;GPIOA_CRL端口配置寄存器
LDR R0,=NVIC_ ;0xE000E000中断控制器基址
MOV R1,#0X08 ;SPI1中断号位35
STR R1, ;开放TSPI1中断
LDR R1,=SPI1_ ;0x40013000 SPI1基址
MOV R0,#0X04
STRH R0, ;SPI控制寄存器2(SPI_CR2)
MOV R0,#0X7F ;
STRH R0, ;SPI控制寄存器1(SPI_CR1)
MOV R0,#0X44
STRH R0, ;SPI控制寄存器2(SPI_CR2)
MOV R0,#0X55
STR R0, ;SPI 数据寄存器(SPI_DR)
SGU5 MOV R0,#0
B SGU5
ENDP
;引脚PA1,PA4,PA5,PA6,PA7输出肯定完好的,程序等进入SPI中断,而且PA1有信号输出,
;但是SPI1_MOSI(PA7),SPI1_SCK(PA5)就是没动静(示波器看都没信号,低电平),不知何原因?
;那位老师能替我分析一下到底哪里有错?:o:funk:
RE:配置了SPI参数,可SPI_SCK没信号输出???
如果你使用的是模块,那么SPI1_MOSI是输入信号,你应该检测SPI1_MISO这个引脚。回复:配置了SPI参数,可SPI_SCK没信号输出???
我用的是芯片!!至少SPI1_SCK上也该有信号啊!!
RE:配置了SPI参数,可SPI_SCK没信号输出???
我没有看到你通过SPI发送数据,你发个数据看看有没有波形。回复:配置了SPI参数,可SPI_SCK没信号输出???
SCK要有发送接收数据才有输出你可以确认一下:
1、SPI时钟使能
2、IO配置,IO时钟
RE:配置了SPI参数,可SPI_SCK没信号输出???
MOV R0,#0X55STR R0,;SPI 数据寄存器(SPI_DR)
这就是发了数据了!!而且中断程序中也有的!!
RE:配置了SPI参数,可SPI_SCK没信号输出???
SPI时钟使能IO配置,IO时钟
都配置了!!
RE:配置了SPI参数,可SPI_SCK没信号输出???
OK:D回复:配置了SPI参数,可SPI_SCK没信号输出???
楼主,你已经解决了吧,我也遇到了相同的问题,能告诉我怎么解决的吗,谢了
页:
[1]