⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 DP256_HCS12_SPI串行口驱动程序
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dp256.h>     /* derivative information */


#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"


void SPI1Init(void)
{
  DDRP_DDRP3 = 1;         /* PP3脚作为输出脚 */
  SPI1CR1_SPE = 1;  		  /* SPI使能 */
  SPI1CR1_MSTR = 1;       /* 设置单片机为主机模式 */
  SPI1CR1_CPHA = 1;
  SPI1CR1_CPOL = 0;
  SPI1CR1_LSBFE = 0;		  /* 数据传输时高位在前 */
  SPI1BR = 0x03;          /*SPI的波特率为500k*/
  PTP_PTP3 = 1;           /* PPS脚高电平,从机未选中*/
}
  
void SPI1_TRAN(unsigned char SPI_data)
{
  unsigned char c;						/* 定义无符号字符变量 c */
  unsigned char d;						/* 定义字节型变量 d */
  
  for(d=1;d<10;d++)					  /* 数据传输前片选信号为低并保持一段时间 */
    PTP_PTP3=0;

  while(SPI1SR_SPTEF==0){}		/* SPI数据寄存器不为空,执行循环。为空跳出循环。并读取SPI状态寄存器,然后把所需的数据写入数据寄存器*/
  c=SPI1SR;							  	
  SPI1DR=SPI_data;					  

  for(d=1;d<10;d++)					/* 数据传输后片选信号先为低后为高,并保持一段时间*/
    PTP_PTP3=0;						  
 
  for(d=1;d<6;d++)
    PTP_PTP3=1;
}

void main(void)
{
  unsigned int count;
    
  SPI1Init();
  EnableInterrupts;
  
  for(;;) /* wait forever */
  {
    for(count=0;count<65535;count++)
    {
      asm(NOP);
    }
    SPI1_TRAN(0x55);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -