Initialize UART properly.

Signed-off-by: Yilin Sun <imi415@imi.moe>
This commit is contained in:
Yilin Sun 2023-08-12 15:20:27 +08:00
parent b1e534d686
commit eb3df334f6
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
4 changed files with 54 additions and 51 deletions

2
SDK

@ -1 +1 @@
Subproject commit c87caf25cde7c3b2deb90f15896d6cb52dba0989
Subproject commit 7e27dee1d5e90ea6f1316a7df4d72fc9fc280059

3
pyocd_user.py Normal file
View File

@ -0,0 +1,3 @@
def will_connect():
irom1 = target.memory_map.get_first_matching_region(name="IROM1")
irom1.flm = "SDK/Packs/MDK/PY32F0xx_32K.FLM"

View File

@ -1,3 +1,5 @@
#include <unistd.h>
#include "main.h"
void app_syscalls_init(void) {
@ -9,4 +11,14 @@ void app_syscalls_init(void) {
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
HAL_UART_Init(&huart1);
}
int _write(int fd, char *buf, int count) {
if ((fd == STDOUT_FILENO) || (fd == STDERR_FILENO)) {
HAL_UART_Transmit(&huart1, (uint8_t *)buf, count, 1000);
return count;
} else {
return 0;
}
}

View File

@ -1,25 +1,25 @@
/**
******************************************************************************
* @file py32f0xx_hal_msp.c
* @author MCU Application Team
* @brief This file provides code for the MSP Initialization
* and de-Initialization codes.
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) Puya Semiconductor Co.
* All rights reserved.</center></h2>
*
* <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
* All rights reserved.</center></h2>
*
* This software component is licensed by ST under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
*
******************************************************************************
*/
******************************************************************************
* @file py32f0xx_hal_msp.c
* @author MCU Application Team
* @brief This file provides code for the MSP Initialization
* and de-Initialization codes.
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) Puya Semiconductor Co.
* All rights reserved.</center></h2>
*
* <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
* All rights reserved.</center></h2>
*
* This software component is licensed by ST under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "main.h"
@ -31,39 +31,27 @@
/* Private function prototypes -----------------------------------------------*/
/* External functions --------------------------------------------------------*/
/**
* @brief MSP
*/
void HAL_MspInit(void)
{
__HAL_RCC_SYSCFG_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE();
void HAL_MspInit(void) {
__HAL_RCC_SYSCFG_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE();
}
/**
* @brief USART的MSP
*/
void HAL_UART_MspInit(UART_HandleTypeDef *huart)
{
/* 使能时钟 */
__HAL_RCC_USART2_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
void HAL_UART_MspInit(UART_HandleTypeDef *huart) {
if (huart == &huart1) {
__HAL_RCC_USART1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**USART2引脚配置
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF4_USART2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* 使能NVIC */
HAL_NVIC_SetPriority(USART2_IRQn, 0, 1);
HAL_NVIC_EnableIRQ(USART2_IRQn);
HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);
HAL_NVIC_EnableIRQ(USART1_IRQn);
}
}
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/