[STM8] 点阵显示问题

[复制链接]
2181|7
 楼主| dingsujie 发表于 2013-9-22 11:58 | 显示全部楼层 |阅读模式
本帖最后由 dingsujie 于 2013-9-22 12:05 编辑

/*****************************   SPI初始化  ************************************/
void SPI_74HC595_Init(void)
{  GPIO_Init(GPIOE, SPI_CS, GPIO_MODE_OUT_PP_HIGH_FAST);
   SPI_DeInit();
   SPI_74HC595_CS_HIGH();//不使能从设备
   SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_32,SPI_MODE_MASTER,\
                 SPI_CLOCKPOLARITY_HIGH,SPI_CLOCKPHASE_2EDGE,\
                 SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT, 0x07);
   SPI_Cmd(ENABLE);/* 使能SPI */
  
}
/*****************************   SPI_74HC595_SendByte  ************************************/
void SPI_74HC595_SendByte(uchar HC595Data1)
{
  SPI_74HC595_CS_LOW();
   /* Loop while DR register in not emplty */
  while (SPI_GetFlagStatus( SPI_FLAG_TXE) == RESET);
  /* Send byte through the SPI1 peripheral */
  SPI_SendData(HC595Data1);
  SPI_74HC595_CS_HIGH();
  
}
/*********************************  显示函数  *****************************************************/
void Display(void)
{    uchar i=0;
    GPIO_Write(GPIOB, 0xFF);
       for(i=0;i<3;i++)
        {
         SPI_74HC595_SendByte(Disbuff);
         delay_d(12);
         
        }   
}
/*********************************  数字更新显示函数  *****************************************************/
void RefreshDisbuff(void)
{
  uint i=0,j=0,temp=0;
    for(i=0;i<5;i++)
    {  
      Disbuff[1]=NUM[1*5+i];
     // Disbuff[1]=0xff;
      //Disbuff[2]=0x00;
        Disbuff[0]=NUM[0*5+i];
        Disbuff[2]=NUM[1*5+i];   
      Display();
      switch(i)
        {
        case 0:GPIO_Write(GPIOB, 0xFD);break;
        case 1:GPIO_Write(GPIOB, 0xFB);break;
        case 2:GPIO_Write(GPIOB, 0xF7);break;
        case 3:GPIO_Write(GPIOB, 0xEF);break;
        case 4:GPIO_Write(GPIOB, 0xDF);break;
        default:{;}
        }
      delay_d(500);
    }  
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/1072989515/QQ/WinTemp/RichOle/%25(Z73Z4O%25N%7D3]6P(9XQ56%7B7.jpg


    STM8采用SPI模式驱动74HC595出现乱码,具体情况为显示错位,请大侠帮忙分析
outstanding 发表于 2013-9-22 13:03 | 显示全部楼层
是图片么?打不开

评分

参与人数 1威望 +1 收起 理由
dingsujie + 1 赞一个!

查看全部评分

 楼主| dingsujie 发表于 2013-9-22 13:25 | 显示全部楼层
恩,原理图附在后面

 楼主| dingsujie 发表于 2013-9-24 10:41 | 显示全部楼层
程序搞定,但是易出现烧程序时芯片毁坏现象
xxiao6130 发表于 2013-9-24 10:45 | 显示全部楼层
dingsujie 发表于 2013-9-22 13:25
恩,原理图附在后面

显示不了
夏日飞鹰 发表于 2013-9-24 11:01 | 显示全部楼层
考虑一下芯片和调试器是否正版
dirtwillfly 发表于 2013-9-24 12:03 | 显示全部楼层
dingsujie 发表于 2013-9-24 10:41
程序搞定,但是易出现烧程序时芯片毁坏现象

电路没问题吧?一般芯片不容易损坏的
 楼主| dingsujie 发表于 2013-9-24 12:10 | 显示全部楼层
电压正常,下载口只负责下载程序,未作任何复用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

523

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部