jssd 发表于 2018-6-1 11:37:00

求助:STC8A8K 进不了SPI中断

本帖最后由 jssd 于 2018-6-1 11:38 编辑

代码如下,用stc-isp-15xx-v6.86D.exe生成改的,看规格书也是一样的代码,现在问题是:void SPI_Isr() interrupt 9这个中断一直没有进来,卡在while (spiBusy);这里不动了
没找到问题,网上关于这个芯片使用的又少
PS:串口确认是OK的

#define   SS        P12       
static spiBusy = 0;

void SPI_Isr() interrupt 9
{
        UART_Send('1');
    SPSTAT = 0xc0;                              //清中断标志
    SS = 1;                                     //拉高从机的SS管脚
    spiBusy = 0;
}

void SPI_Init(void)
{
        SS = 1;
        spiBusy = 0;
        SPCTL = 0x50;                               //使能SPI主机模式
    SPSTAT = 0xc0;                              //清中断标志
    IE2 = ESPI;                                 //使能SPI中断
        EA= 1;      //开总中断
}

void SPI_WriteByte(void)
{
        while (spiBusy);
        UART_Send('2');
        spiBusy = 1;
        SS = 0;                               //拉低从机SS管脚
        SPDAT = 0x5a;                           //发送测试数据
}

//主频 22.1184MHz
int main(void)
{   
        SysClock_Init();
        IO_Init();
        SPI_Init();
        UART_Init();
       
        TimerInit();
       
        while (1)
        {       
                if(INT10ms>100)
                {
                        INT10ms = 0;
                       
                }
               
                if(INT100ms>1000)
                {
                        INT100ms = 0;
                        LED_Flash();
                        SPI_WriteByte();
                }
        }       
}
页: [1]
查看完整版本: 求助:STC8A8K 进不了SPI中断