헬로우 월드 성공했다
마호로(59.14)
2020-09-30 16:17
추천 2
![viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e2deca0e911b898e22201c54742aeb3fc8ec3aa840fe5929205b0d36be0c2dc334d3fb8c7cf971bc52]()
![viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e2deca0e911b898e22201c54742aeb3fc8ec57ce58548f4976e28f5968c2dc15eb499df6bb6f866a0f55]()
![viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e2deca0e911b898e22201c54742aeb3fc8ec57ce58548f4976e28f5968c28f41ee489df1e4cacf2a4565]()
UART_HandleTypeDef huart3
;
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart3
, (uint8_t *)&ch
, 1, 0xFFFF);
return ch
;
}
uint8_t byte
;
void SystemClock_Config(void);
void USART3_IRQHandler(void)
{
HAL_UART_IRQHandler(&huart3
);
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef
*huart
)
{
if (huart
->Instance
== USART3
)
{
HAL_UART_Receive_IT(&huart3
, &byte
, 1);
}
}
void uart_gpio_init()
{
GPIO_InitTypeDef GPIO_InitStruct
;
__GPIOD_CLK_ENABLE();
GPIO_InitStruct
.Pin
= GPIO_PIN_8
| GPIO_PIN_9
;
GPIO_InitStruct
.Mode
= GPIO_MODE_AF_PP
;
GPIO_InitStruct
.Pull
= GPIO_PULLUP
;
GPIO_InitStruct
.Speed
= GPIO_SPEED_LOW
;
GPIO_InitStruct
.Alternate
= GPIO_AF7_USART3
;
HAL_GPIO_Init(GPIOD
, &GPIO_InitStruct
);
}
void uart_init()
{
__USART3_CLK_ENABLE();
huart3
.Instance
= USART3
;
huart3
.Init
.BaudRate
= 115200;
huart3
.Init
.WordLength
= UART_WORDLENGTH_8B
;
huart3
.Init
.StopBits
= UART_STOPBITS_1
;
huart3
.Init
.Parity
= UART_PARITY_NONE
;
huart3
.Init
.Mode
= UART_MODE_TX_RX
;
huart3
.Init
.HwFlowCtl
= UART_HWCONTROL_NONE
;
huart3
.Init
.OverSampling
= UART_OVERSAMPLING_16
;
HAL_UART_Init(&huart3
);
HAL_NVIC_SetPriority(USART3_IRQn
, 0, 0);
HAL_NVIC_EnableIRQ(USART3_IRQn
);
}
int main(void)
{
HAL_Init();
uart_gpio_init();
uart_init();
HAL_UART_Receive_IT(&huart3
, &byte
, 1);
while(1)
{
printf("hello world \n");
HAL_Delay(1000);
}
}
stm32
큐브머시기코드 제네레이터 없어서 HAL로 직접함
uart 안되서 힘들었고 printf 안되어서 힘들었음
오늘 목표치는 달성해서 뿌듯하다..
모...모한거지 - dc Cpp
stm32 마이크로 프로세서 printf 정상작동 시키기위한 최소한의 밑작업
고생햇다
님 stm32 개발환경에서 그냥 C++로 짜도 돌아가는거 맞죠??