📄 mcbspinit.asm
字号:
***串口0的初始化设置程序
.include MMRegs.h
.global _mcbspinit
.title "mcbsp.asm"
.sect "mcbsp"
_mcbspinit:
***************以下是设定mcbsp0的串口工作方式
stm SPCR1, McBSP0_SPSA ;将mcbsp0的spcr1寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0000h, McBSP0_SPSD ;spcr1寄存器值设定为0000h,reset接收,接收中断由RRDY信号触发,数据右对齐
stm SPCR2, McBSP0_SPSA ;将mcbsp0的spcr2寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0200h, McBSP0_SPSD ;spcr2寄存器值设定为0200h,reset发送、grst、frst,发送中断由XRDY信号触发
stm RCR1, McBSP0_SPSA ;将mcbsp0的rcr1寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0040h, McBSP0_SPSD ;rcr1寄存器值设定为0040h,接收数据时每帧1word,每word=16bits
stm RCR2, McBSP0_SPSA ;将mcbsp0的rcr2寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0044h, McBSP0_SPSD ;rcr2寄存器值设定为0044h,接收数据时signal-phase frame方式,第一帧以后的多余脉冲被忽略,数据不延迟
stm XCR1, McBSP0_SPSA ;将mcbsp0的xcr1寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0040h, McBSP0_SPSD ;xcr1寄存器值设定为0040h,发送数据时每帧1word,每word=16bits
stm XCR2, McBSP0_SPSA ;将mcbsp0的xcr2寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0044h, McBSP0_SPSD ;xcr2寄存器值设定为0044h,发送数据时signal frame方式,第一帧以后的脉冲被忽略,数据不延迟
stm PCR, McBSP0_SPSA ;将mcbsp的pcr寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0002h, McBSP0_SPSD ;fsx/fsr、clkx/clkr采用外部时钟,fsx/fsr都是高电平有效,clkx上升沿有效,clkr下降沿有效
nop
nop ;等待两个周期
stm SPCR1, McBSP0_SPSA ;
stm #0001, McBSP0_SPSD ;设置rrst=1
stm SPCR2, McBSP0_SPSA ;
stm #0201, McBSP0_SPSD ;设置xrst=1
rpt #5
nop
ret
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -