سلام
من می خوام اعداد 1 تا 6 را روی یک سون سگمنت 6 رقمی نمایش بدم. کدی که نوشتم بصورت زیر هست :

#include "stm32f10x.h"
int main (void)
{
SystemInit();
uint32_t j;
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; /* Enable GPIOB clock */
RCC->APB2ENR |= RCC_APB2ENR_IOPDEN; /* Enable GPIOD clock */
/****for address****/
GPIOB->CRL &= ~0xFFFFFFFF; /* PD clear*/
GPIOB->CRL |= 0x11111111 ; /* PD output Max Speed 10 Mz(push-pull)*/
/****for data****/
GPIOB->CRH &= ~0xFFFFFFFF; /* PD clear */
GPIOB->CRH |= 0x11111111 ; /* PD output Max Speed 10 Mz(push-pull) */
while (1)
{
GPIOB -> BSRR = 0x82010000;
GPIOB -> BSRR = 0xf920;
for(j=0;j<5555;j++);
GPIOB -> BSRR = 0xf9200000;
GPIOB -> BSRR = 0xa410;
for(j=0;j<5555;j++);
GPIOB -> BSRR = 0xa4100000;
GPIOB -> BSRR = 0xb008;
for(j=0;j<5555;j++);
GPIOB -> BSRR = 0xb0080000;
GPIOB -> BSRR = 0x9904;
for(j=0;j<5555;j++);
GPIOB -> BSRR = 0x99040000;
GPIOB -> BSRR = 0x9202;
for(j=0;j<5555;j++);
GPIOB -> BSRR = 0x92020000;
GPIOB -> BSRR = 0x8201;
for(j=0;j<5555;j++);
}
}

مشکل من الان اینه که فقط اعداد 1 تا 4 رو نمایش میده و 5 و 6 رو نمایش نمی ده. البته تو پروتوس تست کردم.
یه مشکل دیگه که دارم اینه که نمشه رجیستر RCC_CFGR رو تغییر بدم.یعنی وقتی مقداردهی می کنم مقدارش هیچ تغییری نمیکنه
لطفا راهنماییم کنید. با تشکر