Q&A
질문 | Arduion UART 통신에 대한 질문이 있습니다.
페이지 정보
작성자 볼딱지 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일18-01-28 15:18 조회606회 댓글1건본문
'STMicroelectronics' 사의 제품과도 연관된 질문이라 질문글을 올리지 않을까 하고 고민을 하였습니다. 그러다가 Arduino와도 관련이 있는 질문이라..... 글을 작성하게 되었습니다.
제가 'STM32F429ZI' 보드에서 'Arduino Uno' 로 메시지를 보내기(UART 통신을 통해서) 위해 Code를 ('STM32CubeMX' tool을 통해서)생성하고 작성하였습니다. STM32F429ZI 보드와 관련된 Source code는 아래와 같습니다.
/******************************************************************************
#include "main.h"
#include "stm32f4xx_hal.h"
#include <string.h>
UART_HandleTypeDef huart5;
char* Message = "ABCD";
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_UART5_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_UART5_Init();
while(1)
{
HAL_UART_Transmit(&huart5, (uint8_t*)Message, strlen(Message), 500);
}
}
***************************************************************************/
다음에는 STM32F429ZI 보드에서 송신하는 정보를 받아들이는(수신하는) Arduino Uno의 Source Code입니다.
/********************************************************************************
#include <SoftwareSerial.h>
SoftwareSerial UART(2, 3);
void setup()
{
Serial.begin(9600);
UART.begin(9600);
}
void loop()
{
while(UART.available())
{
Serial.println(UART.read());
}
}
*******************************************************************************/
두 Source code들 모두 build 및 compile이 되었고 running도 됩니다. STM32F429ZI 보드의 TX pin을 Arduino Uno 보드의 RX pin에, STM32F429ZI 보드의 RX pin을 Arduino Uno 보드의 TX pin에 올바르게 연결하였고 두 보드의 GND pin들도 연결하였습니다. 그런데 Arduino Uno의 Terminal에, STM32F429ZI에서 송신한 정보가 출력되지 않습니다. 이상합니다.
혹시 저의 Source code에 어떤 문제가 있는지 가르침을 부탁해도 되겠습니까?
제가 'STM32F429ZI' 보드에서 'Arduino Uno' 로 메시지를 보내기(UART 통신을 통해서) 위해 Code를 ('STM32CubeMX' tool을 통해서)생성하고 작성하였습니다. STM32F429ZI 보드와 관련된 Source code는 아래와 같습니다.
/******************************************************************************
#include "main.h"
#include "stm32f4xx_hal.h"
#include <string.h>
UART_HandleTypeDef huart5;
char* Message = "ABCD";
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_UART5_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_UART5_Init();
while(1)
{
HAL_UART_Transmit(&huart5, (uint8_t*)Message, strlen(Message), 500);
}
}
***************************************************************************/
다음에는 STM32F429ZI 보드에서 송신하는 정보를 받아들이는(수신하는) Arduino Uno의 Source Code입니다.
/********************************************************************************
#include <SoftwareSerial.h>
SoftwareSerial UART(2, 3);
void setup()
{
Serial.begin(9600);
UART.begin(9600);
}
void loop()
{
while(UART.available())
{
Serial.println(UART.read());
}
}
*******************************************************************************/
두 Source code들 모두 build 및 compile이 되었고 running도 됩니다. STM32F429ZI 보드의 TX pin을 Arduino Uno 보드의 RX pin에, STM32F429ZI 보드의 RX pin을 Arduino Uno 보드의 TX pin에 올바르게 연결하였고 두 보드의 GND pin들도 연결하였습니다. 그런데 Arduino Uno의 Terminal에, STM32F429ZI에서 송신한 정보가 출력되지 않습니다. 이상합니다.
혹시 저의 Source code에 어떤 문제가 있는지 가르침을 부탁해도 되겠습니까?
댓글목록
최고관리자님의 댓글

TX, RX, GND 를 서로 연결하시고 STM32F429ZI 보드의 TX가 아두이노 2번 핀으로 연결되는지 확인해보세요. 아두이노쪽 코드는 문제가 없어보입니다.