SPl初始化和数据传输程序实例
发表:2023-08-29 12:06:26 阅读:44

SPl初始化和数据传输程序实例:下面的例子说明如何将SPl初始化为主机以及如何进行简单的数据发送。例子中DDR—SPl必须由实际的数据方向寄存器代替;DD—MOSl、DD—MIS0和DD—SCK必须由实际的数据方向代替。比如说,MOSl为PB5引脚,则DD_MOSl要用DDB5取代,DDR—SPl则用DDRB取

代。汇编代码例子:

SPl—Masterlnit:

;设置MOSl和SCK为输出,其他为输入

idi rl7,(1<

out DDR_SPl,rl7

;使能SPl主机模式,设置时钟速率为fck/16

idi rl7,(1<

out SPCR,rl7

ret

SPl—MasterTransmit:

;启动数据传输(r16)

out SPDR.rl6

Wait—Transmit:

;等待传输结束

sbis SPSR,SPIF

rj mp Wait_Transmit

ret

C代码例子(1):

void SPl—MasterInit(void)

{

/*设置MOSl和SCK为输出,其他为输入*/

DDR_SPI=(1<

/*使能SPl主机模式,设置时钟速率为fck/16*/

SPCR=(1<

)

void SPl..MasterTransmit(char cData)

{

/*启动数据传输*/

SPDR=cData;

/*等待传输结束*/

while(!(SPSR&(1<

;

)

 

 

更多信息请关注

激光二极管

同步串行通信SPI

各种二极管作用

激光的产生机理

半导体激光二极管

在应用区和Boot区之间移动中断