📄 main.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 + -