新建 文本文档 (2).txt
来自「spi总线的模拟程序,可以实现单片机的spi传输」· 文本 代码 · 共 49 行
TXT
49 行
模拟SPI实验的C语言代码
调试通过
#include "config.h"
#define SPI_CS 0x00000100 /*p0.8*/
#define SPI_DATA 0x00000040 /*p0.6*/
#define SPI_CLK 0x00000010 /*p0.4*/
#define SPI_IOCON 0x00000150 /*SPI接口的I/O设置字*/
void DelayNS(uint32 dly) //延时函数
{ uint32 i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
void HC595_SendDat(uint8 dat)
{ uint8 i;
IOCLR=SPI_CS; //SPC_CS=0
for(i=0;i<8;i++) //发送8位数据
{IOCLR=SPI_CLK; //SPI_CLK=0
/*设置SPI的DATA输出值*/
if((dat&0x80)!=0) IOSET=SPI_DATA;
else IOCLR=SPI_DATA;
dat<<=1;
IOSET=SPI_CLK; //SPI_CLK=1
}
IOSET=SPI_CS; //SPI_CS=1,输出显示数据
}
int main(void)
{ const uint8 DISP_TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,
0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
uint8 i;
PINSEL0=0x00000000; //设置所有引脚连至GPIO
PINSEL1=0x00000000;
IODIR=SPI_IOCON; //设置SPI控制口为输出
while(1)
{for(i=0;i<16;i++)
{HC595_SendDat(DISP_TAB[i]); //输出LED显示数据
DelayNS(50);
}
}
return(0);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?