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

📄 main.c

📁 SSI对从外设器件接收到的数据执行串行到并行转换。CPU可以访问SSI数据寄存器来发送和获得数据。发送和接收路径利用内部FIFO存储单元进行缓冲
💻 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 + -