📄 main.c
字号:
#include "systemInit.h"
#include <ssi.h>
#define PART_LM3S1138
#include <pin_map.h>
// SSI初始化
void ssiInit(void)
{
unsigned long ulBitRate = TheSysClock / 3;
SysCtlPeriEnable(SYSCTL_PERIPH_SSI0); // 使能SSI模块
SysCtlPeriEnable(SSI0CLK_PERIPH); // 使能SSI0接口所在的GPIO端口
SysCtlPeriEnable(SSI0FSS_PERIPH);
SysCtlPeriEnable(SSI0RX_PERIPH);
SysCtlPeriEnable(SSI0TX_PERIPH);
GPIOPinTypeSSI(SSI0CLK_PORT, SSI0CLK_PIN); // 将相关GPIO设置为SSI功能
GPIOPinTypeSSI(SSI0FSS_PORT, SSI0FSS_PIN);
GPIOPinTypeSSI(SSI0RX_PORT, SSI0RX_PIN);
GPIOPinTypeSSI(SSI0TX_PORT, SSI0TX_PIN);
// SSI配置:基址,协议格式,主/从模式,位速率,数据宽度
SSIConfig(SSI0_BASE, SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, ulBitRate, 8);
SSIEnable(SSI0_BASE); // 使能SSI收发
}
// 将数据通过静态数码管显示
void dataDisplay(unsigned char ucData)
{
const unsigned char ucTable[16] = // 定义数码管显示数据
{
0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71
};
unsigned char t = ~ucTable[ucData & 0x0F]; // 若是共阴式数码管则不必取反
SSIDataPut(SSI0_BASE, t); // 通过SSI输出数据到74HC595
}
// 主函数(程序入口)
void main(void)
{
unsigned char i;
jtagWait(); // 防止JTAG失效,重要!
clockInit(); // 时钟初始化:晶振,6MHz
ssiInit(); // SSI初始化
for (;;)
{
for (i = 0; i < 16; i++) // 在数码管上循环显示数字
{
dataDisplay(i);
SysCtlDelay(500 * (TheSysClock / 3000));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -