共2条
1/1 1 跳转至页
ㄐ偶际?PTR8000 菜鸟求助--关于PTR8000

问
小弟我刚买回来两块PTR8000的模块.
想看看是否能和我用的C8051F330接通.想法很简单,就是向NRF905里面的配置寄存器里面写数据,然后再原封不动的把它读出来,看看是不是我写的.
如果是的,证明应该是通了.但是发现一个问题,不管我写的是什么,读出来的都是FF.....这个我是用调试工具在内存中看的.百思不得其解,请大家帮帮忙,谢谢了.下面是我的源程序代码:
$include (c8051f330.inc)
cd equ p0.7
pwr equ p0.6
trx_ce equ p0.5
txen equ p0.4
am equ p1.0
dr equ p1.1
sck equ p1.2
miso equ p1.3
mosi equ p1.4
csn equ p1.5
org 0000h
ljmp main
org 0030h
main: anl PCA0MD, #NOT(040h) ;关闭看门狗
MOV SP,#60H
MOV OSCICN,#080H ;设置时钟频率为3.0625M
mov P0MDOUT, #0FFh
mov P1MDOUT, #03Fh
mov P0SKIP, #0FFh
mov P1SKIP, #0FFh
mov XBR1, #040h ;以上为初始化IO引脚定义
ini: setb pwr
clr trx_ce ;进入空闲编程模式
setb csn
mov r0,#00h
clr csn ;开启SPI
acall spiout ;发送命令为向配置寄存器0000H写数据
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout ;以上用很笨的方法发了十个数据 全为0
setb csn ;关闭SPI
mov r0,#10h ;读地址为0000H 的配置寄存器
clr csn
acall spiout ;发送命令为读数据(待发送)
acall spiin ;接受数据
mov 20h,r0
acall spiin
mov 21h,r0
acall spiin
mov 22h,r0
acall spiin
mov 23h,r0
acall spiin
mov 24h,r0
acall spiin
mov 25h,r0
acall spiin
mov 26h,r0
acall spiin
mov 27h,r0
acall spiin
mov 28h,r0
acall spiin
mov 29h,r0 ;以上用很笨的方法存了十个数据全为FF
;理论上应该读到的数据为0
setb csn
sjmp $
;***********************************************************
;spi通讯子程序
;**************************************************************
;read返回参数在R0中
spiin: nop
clr c
clr a
mov r1,#08h
spiin1: clr sck
nop
nop
mov c,miso
rlc a
setb sck
nop
nop
djnz r1,spiin1
mov r0,a
ret
;write入口参数在RO中
spiout: clr sck
clr c
mov r1,#08h
mov a,r0
spiout1: nop
MOV C,ACC.7
MOV MOSI,C
rlc a
setb sck
nop
nop
clr sck
djnz r1,spiout1
setb sck
ret
end
想看看是否能和我用的C8051F330接通.想法很简单,就是向NRF905里面的配置寄存器里面写数据,然后再原封不动的把它读出来,看看是不是我写的.
如果是的,证明应该是通了.但是发现一个问题,不管我写的是什么,读出来的都是FF.....这个我是用调试工具在内存中看的.百思不得其解,请大家帮帮忙,谢谢了.下面是我的源程序代码:
$include (c8051f330.inc)
cd equ p0.7
pwr equ p0.6
trx_ce equ p0.5
txen equ p0.4
am equ p1.0
dr equ p1.1
sck equ p1.2
miso equ p1.3
mosi equ p1.4
csn equ p1.5
org 0000h
ljmp main
org 0030h
main: anl PCA0MD, #NOT(040h) ;关闭看门狗
MOV SP,#60H
MOV OSCICN,#080H ;设置时钟频率为3.0625M
mov P0MDOUT, #0FFh
mov P1MDOUT, #03Fh
mov P0SKIP, #0FFh
mov P1SKIP, #0FFh
mov XBR1, #040h ;以上为初始化IO引脚定义
ini: setb pwr
clr trx_ce ;进入空闲编程模式
setb csn
mov r0,#00h
clr csn ;开启SPI
acall spiout ;发送命令为向配置寄存器0000H写数据
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout
mov r0,#00h
acall spiout ;以上用很笨的方法发了十个数据 全为0
setb csn ;关闭SPI
mov r0,#10h ;读地址为0000H 的配置寄存器
clr csn
acall spiout ;发送命令为读数据(待发送)
acall spiin ;接受数据
mov 20h,r0
acall spiin
mov 21h,r0
acall spiin
mov 22h,r0
acall spiin
mov 23h,r0
acall spiin
mov 24h,r0
acall spiin
mov 25h,r0
acall spiin
mov 26h,r0
acall spiin
mov 27h,r0
acall spiin
mov 28h,r0
acall spiin
mov 29h,r0 ;以上用很笨的方法存了十个数据全为FF
;理论上应该读到的数据为0
setb csn
sjmp $
;***********************************************************
;spi通讯子程序
;**************************************************************
;read返回参数在R0中
spiin: nop
clr c
clr a
mov r1,#08h
spiin1: clr sck
nop
nop
mov c,miso
rlc a
setb sck
nop
nop
djnz r1,spiin1
mov r0,a
ret
;write入口参数在RO中
spiout: clr sck
clr c
mov r1,#08h
mov a,r0
spiout1: nop
MOV C,ACC.7
MOV MOSI,C
rlc a
setb sck
nop
nop
clr sck
djnz r1,spiout1
setb sck
ret
end
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 |