Одна интересная особенность BlueNRG-1, которая не отражена в документации.
Заставила долго "попотеть".
Вот простейший код, основанный на коде примера:
Project\BlueNRG1_Periph_Examples\Micro\Hello_World
( Read more... )
UPDATE:
Поскольку тут налетела толпа невежд, кто-то утверждает что клок UART изменить нельзя, кто-то указывает на схему клока и говорит что можно, при этом не говорит как именно его изменить...
Специально по заявкам таких телезрителей, привожу кусок из заголовочного файла BlueNRG1
В даташите ничего об этом не сказано, и о чюдо! даже на схеме клоков эта настройка не отражена!
видимо для многих является откровением что на заборе может быть написано х.. а там дрова...
Заставила долго "попотеть".
Вот простейший код, основанный на коде примера:
Project\BlueNRG1_Periph_Examples\Micro\Hello_World
/**
* @brief Main program.
* @param None
* @retval None
*/
int main(void)
{
uint32_t counter = 0;
/* System initialization function */
SystemInit();
UART->CR_b.OVSFACT = 0;
/* Identify BlueNRG1 platform */
SdkEvalIdentification();
/* UART initialization */
SdkEvalComUartInit(UART_BAUDRATE);
/* infinite loop */
while(1)
{
if (counter == 0 )
printf("A");
counter = (counter +1) % 0xFFFFF;
}
}
( Read more... )
UPDATE:
Поскольку тут налетела толпа невежд, кто-то утверждает что клок UART изменить нельзя, кто-то указывает на схему клока и говорит что можно, при этом не говорит как именно его изменить...
Специально по заявкам таких телезрителей, привожу кусок из заголовочного файла BlueNRG1
typedef struct { /*!< CKGEN_SOC Structure */
union {
__IO uint32_t CONTROL; /*!< Control clock and reset of SOC */
struct {
uint32_t : 10;
__IO uint32_t UART_CKDIV : 4; /*!< UART baud rate clock setting from 1 to 16 MHz according to the
formula 16 / (n + 1) MHz. */
} CONTROL_b; /*!< BitSize */
};
В даташите ничего об этом не сказано, и о чюдо! даже на схеме клоков эта настройка не отражена!
видимо для многих является откровением что на заборе может быть написано х.. а там дрова...