proteus仿真stm32

想写一个程序在数码管上按某时间间隔轮换显示,程序写完在proteus仿真时出现了一个问题。仿真时0 1 2可以正常轮换,但是不显示3跳过显示4 5 6,不显示7,显示8 9 最后显示一个乱码,再重复。

int main(void)
{
  /* USER CODE BEGIN 1 */
unsigned int  seg1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uint16_t i=0;
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/
while (1)
  {    
        GPIOB->ODR=seg1[i];
        HAL_Delay(100);
        GPIOB->ODR=0xff;
        i++;
        if(i>=9)
        {
            i=0;
        }
    }

img


只是想按某时间间隔数码管上正常轮换显示0-9.

图上怎么没看到电源啥的,另外数码管的话 7根怎么对应的,然后好好比对一下 看有没有对错