본문 바로가기

프로젝트 기록/23SEMA_Control_STM3247

[STM32CubeIDE] printf를 USART와 연결해 사용하기 0. printf 출력을 USART와 연결하여 사용하는 이유: sprintf와 HAL_UART함수를 이용해 teraterm과 통신할 필요 없이, printf형식으로 원하는 변수를 출력 할 수 있음. 따라서 디버깅 시 편리해짐 1. 구현 방법 main.c 파일에 다음의 함수를 추가. /* USER CODE BEGIN 4 */ //... /*for using printf in teraterm */ #ifdef __cplusplus extern "C" int _write(int32_t file, uint8_t *ptr, int32_t len) { #else int _write(int32_t file, uint8_t *ptr, int32_t len) { #endif if( HAL_UART_Transmit(&hu.. 2023. 4. 5.
[STM32_LoRa] (중간점검)장거리 통신까지 보호되어 있는 글 입니다. 2023. 2. 22.
Lora with STM32 문제해결 보호되어 있는 글 입니다. 2023. 2. 7.
[STM32_LoRa] (중간점검)SPI for LoRa/LoRa설정/ 안테나 선정 보호되어 있는 글 입니다. 2023. 2. 5.
[LoRa] 5편. 두 모듈에서 code 200 return받기 대부분 코드를 main문 안의 while문 안에 넣는데, while문임에도 계속 돌아가지 않고 멈추는 현상이 발생했다. 그래서 lora_send() 함수를 주석 처리 하니 위 사진처럼 정상 작동함.. lora send함수에서 이상이 생긴 듯 하다. 추정되는 이유로는 1. lora_send함수를 실행했는데 rx측 보드와 연결이 안 되어 있으면 return값이 없어 동작을 멈춘다 일 듯 한데.. 그래서 rx측 코드를 다시 한 번 확인하고 tx측 보드와 연결이 잘 되는지 다시 한번 확인한 뒤, 그 상황에서는 while문의 모든 코드가 정상적으로 돌아가는지 확인할 예정이다. 1) 함수 멈추는 거 해결하기(세팅확인, 함수 확인) void LoRa_Send() { LoRa_transmit(&myLoRa, Tx_in.. 2023. 1. 18.
[LoRa] 4편. 통신에서 사용할 랜덤값 생성 0. 배경 속도값을 주고받아서 teraterm으로 확인하려 했으나, 속도값은 아직 받아올 수 없기 때문에 변화하는 속도값 처럼 랜덤 값을 만들어 값을 주고받는 것들을 확인하고, 그 코드에 추후 추가될 속도 측정 및 전송 기능들 추가하는 방식으로 하려고 한다. 1. 랜덤 값 만들어서 두 프로그램으로 확인하기 - time, srand, rand를 이용해서 랜덤 값 10개를 만들고 teraterm, STM Studio로 확인해보겠다. 근데 계속 동일한 게 나온다.. - HAL_UART_Transmit()는 문자만 보낼 수 있기 때문에 sprintf로 숫자를 문자로 변환해 주었다. 로라로는 값 하나만 전송해도 되기 때문에, 그 값을 변화하게 해서 변수 하나만 주고 받도록 하겠다. 변수 혹은 srand()는 ma.. 2023. 1. 17.