Mam kłopot wykonuję ćwiczenia według ksiażki dostępnej na portalu Elektroda. Chodzi o cykl STM32 bez bibliotek SPL. Próbuję uruchomić Uart mam problem z wysyłaniem danych. Dane są wysyłane ale terminal wyświetla krzaki. Dodam, że analizator stanów logicznych w trybie autoband wykrywa poprawnie wysyłane dane. Mikrokontroler jest taktowany czestotliwością 8 Mhz. Pin PA9 to TX
W pliku system_stm32f10x.c
Kod: Zaznacz cały
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
#define SYSCLK_FREQ_24MHz 24000000
#else
#define SYSCLK_FREQ_HSE HSE_VALUE
/* #define SYSCLK_FREQ_24MHz 24000000 */
/* #define SYSCLK_FREQ_36MHz 36000000 */
/* #define SYSCLK_FREQ_48MHz 48000000 */
/* #define SYSCLK_FREQ_56MHz 56000000 */
/* #define SYSCLK_FREQ_72MHz 72000000 */
#endif
Nataomiast kod pliku main.c :
Kod: Zaznacz cały
#include <stm32f10x.h>
#include "stm32f1xx_it.h"
int main (void)
{
RCC -> APB2ENR = RCC_APB2ENR_IOPBEN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN;
// GPIOA -> CRH &= ~GPIO_CRH_CNF10_1;
// GPIOA -> CRH |= GPIO_CRH_CNF10_0;
GPIOA -> CRH |= GPIO_CRH_MODE9_0;
GPIOA -> CRH |= GPIO_CRH_CNF9_1;
GPIOA -> CRH &= ~GPIO_CRH_CNF9_0;
SysTick_Config(8000000/1000);
USART1 -> BRR = (8000000/9600);
USART1 -> CR1 = USART_CR1_UE | USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE;
NVIC_EnableIRQ(USART1_IRQn);
while(1)
{
Delay_ms(500);
USART1 -> DR = 222;
}
}