你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

配置了SPI参数,可SPI_SCK没信号输出???

[复制链接]
lsxxmh 提问时间:2011-12-29 18:16 /
;下面的汇编定义了SPI1 
GPIOA_ 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,[R0,#0X0C]  ;GPIOA_ODR端口输出数据寄存器
    EOR R1,#0X00000002 A1输出脉冲信号
    STR R1,[R0,#0X0C]
    LDR R1,=SPI1_      ;0x40013000SPI1基址    
    LDR R0,[R1,#0X0C]
    MOV R0,#0  
    STR R0,[R1,#0X08]  ;清RXNE接收缓冲非空状态标志    ;
    MOV R0,#0X55        
    STR R0,[R1,#0X0C]
    POP {PC}
    ENDP
;主程序---------------------------------------------------------------
Reset_Handler PROC
    ENTRY    
    LDR R0,=RCC_      ;0x40021000时钟控制基址 
    MOV R1,#0X1005    ;SPI1,GPIOA端口时钟使能
    STR R1,[R0,#0X18]  ;RCC_APB2ENR外设时钟使能寄存器
    LDR R0,=GPIOA_     ;GPIOA端口基址    
    LDR R1,=0X34334434 ;配置PA1,PA4,PA5,PA6,PA7
    STR R1,[R0,#0X00]  ;GPIOA_CRL端口配置寄存器         
    LDR R0,=NVIC_     ;0xE000E000中断控制器基址
    MOV R1,#0X08      ;SPI1中断号位35
    STR R1,[R0,#0X104] ;开放TSPI1中断   
    LDR R1,=SPI1_     ;0x40013000 SPI1基址 
    MOV R0,#0X04
    STRH R0,[R1,#0X04] ;SPI控制寄存器2(SPI_CR2)
    MOV R0,#0X7F  ;
    STRH R0,[R1,#0X00] ;SPI控制寄存器1(SPI_CR1)
    MOV R0,#0X44
    STRH R0,[R1,#0X04] ;SPI控制寄存器2(SPI_CR2)
    MOV R0,#0X55
    STR R0,[R1,#0X0C]  ;SPI 数据寄存器(SPI_DR)

SGU5 MOV R0,#0
    B SGU5 
    ENDP

;引脚PA1,PA4,PA5,PA6,PA7输出肯定完好的,程序等进入SPI中断,而且PA1有信号输出,
;但是SPI1_MOSI(PA7),SPI1_SCK(PA5)就是没动静(示波器看都没信号,低电平),不知何原因?
;那位老师能替我分析一下到底哪里有错?
收藏 评论8 发布时间:2011-12-29 18:16

举报

8个回答
废鱼 回答时间:2011-12-30 08:29:58

RE:配置了SPI参数,可SPI_SCK没信号输出???

如果你使用的是模块,那么SPI1_MOSI是输入信号,你应该检测SPI1_MISO这个引脚。
lsxxmh 回答时间:2011-12-30 12:44:03

回复:配置了SPI参数,可SPI_SCK没信号输出???

我用的是芯片!!
至少SPI1_SCK上也该有信号啊!!
废鱼 回答时间:2011-12-30 14:47:27

RE:配置了SPI参数,可SPI_SCK没信号输出???

我没有看到你通过SPI发送数据,你发个数据看看有没有波形。
火雷达 回答时间:2011-12-30 15:31:43

回复:配置了SPI参数,可SPI_SCK没信号输出???

SCK要有发送接收数据才有输出
你可以确认一下:
1、SPI时钟使能
2、IO配置,IO时钟
lsxxmh 回答时间:2012-1-7 16:40:49

RE:配置了SPI参数,可SPI_SCK没信号输出???

MOV R0,#0X55
    STR R0,[R1,#0X0C]  ;SPI 数据寄存器(SPI_DR)
这就是发了数据了!!而且中断程序中也有的!!
lsxxmh 回答时间:2012-1-7 16:53:12

RE:配置了SPI参数,可SPI_SCK没信号输出???

SPI时钟使能
IO配置,IO时钟
都配置了!!
lsxxmh 回答时间:2012-1-17 12:30:29

RE:配置了SPI参数,可SPI_SCK没信号输出???

OK
好人一生平安 回答时间:2014-9-22 23:31:20

回复:配置了SPI参数,可SPI_SCK没信号输出???

楼主,你已经解决了吧,我也遇到了相同的问题,能告诉我怎么解决的吗,谢了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版