본문 바로가기

stm32F429

(7)
stm32F429 uart 수신 interrupt를 해보자 안녕하세요 이번에는 uart 수신을 interrupt를 활용하여 pc에서 타이핑한 문자를 다시 출력하는 걸 해보겠습니다. 먼저 cubeMX에서 UART5를 클릭하면 UART5 global interrupt Enabled 체크를 해줍니다. 그리고 NVIC 설정화면중 Code generation에서 Selcect for init sequence ordering 체크해줍니다. 코드 제너레잇을 하게되면 MX_NVIC_Init();가 생성된걸 확인할 수 있습니다. 프로젝트 중 stm32f4xx_it.c 파일을 들어가보면 아래 사진처럼 UART5_IRQHandler 함수를 확인할수있는데요 여기서 HAL_UART_IRQHandler(&huart5); 를 더 들어가보겠습니다(F3 또는 함수 더블클릭) 함수에 접근하면 ..
stm32f429 보드에 printf 함수를 써보자 안녕하세요 이번에는 cubeIDE에서 printf함수를 사용해보겠습니다. 프로젝트는 uart때 썼던 걸 그대로 복사해서 가져왔고 아래 코드부터 보시면 흔히 알고있는 hello를 printf함수를 호출하여 출력해보는 코드입니다. 하지만 이렇게만 작성하면 hello는 절대 출력하지 않죠 좀더 사전작업이 필요합니다. 먼저 #include "stdio.h"를 USER CODE BEGIN Includes 주석사이에 작성해줍니다. 그리고 Private function prototypes 유저코드 주석 사이에 _write를 작성할겁니다. 이함수는 뭔지 알아보니 printf가 수행이되면 내부에서 _write함수가 호출이되는데 그때 데이터값을 UART5번으로 전송하겠다라는 뜻이라고 하네요 빌드와 디버깅을 하고 터미널 프..
STM32보드와 atmega128 보드를 UART통신 연결을 해보자 안녕하세요 atmega128과 stm32 각각 uart통신을 해보았습니다. 그러니 이번에는 아래사진처럼 두 보드간의 uart통신을 해보려고합니다. 결선은 RT,TX를 교차해서 연결하고 GND연결 해줬습니다. 그리고 buadrate 115200, 8-bit, no parity, stop bit 1 로 설정했어요 먼저 STM32 코드입니다. USER 스위치가 눌렸을때 'a'라는 데이터를 UART5 TX를 통해 전송하고 수신받은 데이터가 'b'이때 LED3번이 켜지고 'c'일때 LED4번이 켜지도록하는 간단한 코드입니다. 데이터 'a'는 atmega128로 보내질것이고 받은 데이터 'b', 'c'는 atmega128로부터 온것입니다. /* USER CODE BEGIN WHILE */ uint8_t null_d..
stm32f429 uart 통신을 해보자 안녕하세요 이번에는 uart통신을 해봅시다. 먼저 이전에 GPIO제어를 했었던 프로젝트 폴더 경로에 uart프로젝트 폴더를 만들어줄게요 그다음 GPIO 프로젝트에 있던 MX파일을 더블클릭하여 들어가줄게요 저는 기존에 사용했던 MX프로젝트를 수정해서 사용하기 위함입니다. 먼저 UART통신을 하기위해서 저는 8bit, No Parity, 115200bps, 1 stop bit로 설정하겠습니다. 이러한설정으로 UART4~8을 활성화했어요 기존에 GPIO 프로젝트 생성할때 관련 설정을 해뒀기때문에 UART기능만 설정하고 바로 code generate를 해줍니다. 이때 MX파일을 다른이름으로 저장해서 이전에 생성했던 uart프로젝트 폴더에 저장해줬습니다. 아래 UART4_Init 함수를 보면 MX에서 설정했던 것..
STM32CubeMX를 이용한 프로젝트 생성 과 STM32CubeIDE에서 GPIO 활용(스위치 LED 제어) 안녕하세요 이번에는 CubeMX를 활용해서 CubeIDE 프로젝트를 생성해보고 프로젝트 Main함수에서 스위치를 활용한 LED제어를 해보려고합니다. 먼저 설치했던 CubeMX를 열면 위의 화면이 나오는데 여기서 왼쪽위에 File를 클릭하여 New project를 클릭하면 아래 화면이 나옵니다. 여기서 나오는 여러가지 MCU 모델중 재가 쓰려고하는 STM32F429ZITx를 찾아서 더블클릭을 하게 되면 아래 사진처럼 프로젝트 설정을 위한 초기화면이 나옵니다. 여기서 아주간편하게 Clock ,Pinout, RCC 등 을 설정하고 GENERATE CODE를 하게되면 프로젝트가 자동으로 만들어집니다! 위사진의 회로도를 보면 LED는 PG13,14로 SW는 PA0 인걸 알수있고 LED의 경우 PIN이 HIGH일때..
STM32CubeMX, STM32CubeIDE 설치해보기 안녕하세요 이번에는 STM32CubeMX 와 STM32CubeIDE를 설치해보겠습니다. CubeMX는 ST 사의 MCU를 사용자가 선택하고 코드를 제너레이터 할 수 있어 기존에 레지스터를 선언, 초기화하는 과정을 생략해 주어 펌웨어 엔지니어들이 개발을 하는 데 있어 굉장히 도움 되어 편해졌다고 합니다. 그래서 저도 써보려고요ㅋㅋ 설치 방법은 아래 링크에 접속을 합니다. https://www.st.com/en/development-tools/stm32cubemx.html#get-software 접속하면 위사진처럼 화면이 나오느데요 저는 윈도우OS이니까 가장 밑에있는 파일을 Get latest를 눌르겠습니다. ST홈페이지 아이디가없는 사람은 이메일을 기입하면 다운로드 할 수있는 링크를 제공해서 압축파일을 다..
STM32F429 Discovery kit 안녕하세요 티스토리 개설하고 첫 게시글이네요^^ 티스토리를 개설한 이유는 재가 대학교에서 전공했던 걸 바탕 삼아 STM32 독학을 해서 이것저것 시도해보고 그 결과를 일기처럼 남기기 위한 목적입니다~ 무언가를 하고 시간이 지나면 잊어버리니까요 ㅎㅎ 먼저 재가 독학을 하기위해 선택한 보드는 STM32F429 Discovery kit 입니다. 학과 연구실 활동을 하면서 Cortex-m3(망고 보드)를 가지고 IAR 개발 툴에서 펌웨어 코딩을 해봤었는데 이번에 도전해볼 보드는 조금 더 사양이 높고 LCD도 달려있어서 이것저것 시도해볼게 많아 보여서 선택했습니다! 개발 환경(Tool)은 CubeMX와 CubeIDE로 선택했고 GPIO부터 시작해서 UART, TIMER 등등 펌웨어 공부를 놓은지 2년이 다 돼가서..