본문 바로가기
  • SpokeHouse
728x90
728x90

STM32/STM32F7

STM32F103 - I2C로 센서 데이터 읽어오기-조도센서 BH1750 안녕하세요 오토입니다. 이번 메모 포스팅은 STM32F103 과 I2C를 사용하여 조도센서 BH1750 의 데이터를 확보하는 메모입니다. 일단 항상 마찬가지로 IDE 세팅 해줍니다. 인터럽트 켜주구요 GPIO까지 세팅해주고 나면 끝납니다. 다음으로는 관련 헤더파일과 소스파일 생성해주고 코드 넣어줍니다. 헤더파일. #ifndef INC_BH1750_H_ #define INC_BH1750_H_ //Device Address //Please note that arduino uses 7 bit addresses, STM32 uses 8 #define BH1750_NO_GROUND_ADDR_WRITE (0xB9 + 0) #define BH1750_NO_GROUND_ADDR_READ (0xB9 + 1) #defin.. 2023. 12. 16.
STM32F103 - ADC DMA 읽어오기 안녕하세요 오토입니다. 이번 메모 포스팅은 STM32F103에서 ADC 값을 DMA로 읽어오는 방법에 대해 메모하고자합니다. 간단한 제품의 경우 POLLING 방식으로 계속 데이터를 확보하면 되는데 현재 진행중인 제품은 무선통신이 우선적으로 동작하여 신뢰성을 확보하여야 하기 때문에 프로세서의 부담을 줄이고자 DMA로 데이터를 확보하기로 하고 진행하였다. 먼저 IDE에서 파라미터들 세팅해준다 인터럽트도 일단 켜주고 다음으로 DMA REQUEST 추가 해준다 클럭도 이렇게 세팅해주고 코드를 제네레이션 해주면 일단 세팅은 마무리된다 지금 하고있는 작업은 전류센서의 데이터를 확보하기 위함이며, ACS712 제품이다. 관련 소스 파일 및 헤더파일 생성해주고 헤더파일. #ifndef INC_ADCACS712CURR.. 2023. 12. 9.
STM32F103 - TIMER 인터럽트 만들기 안녕하세요 오토입니다. 이번 메모 포스팅은 간단한 TIMER 만들기 메모입니다. 타이머 하나 살리구요 클럭소스는 internal Clock으로 하겠습니다. 파라메터들 세팅 해주시구요 저는 지금 1set 만들려고해요 참고하시고 prescaler는 mcu마다 최대로 쓰는 internal Clock이 다르니까 잘보시고 하시면됩니다. 인터럽드 걸려야되니까 체크해주구요 HAL_TIM_Base_Start_IT(&htim3);//sub timer 1sec 스타트 때려주시고 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim->Instance == htim3.Instance) { ms_count++; if(ms_count >= 1000) { m.. 2023. 12. 2.
STM32F103 - UART DMA로 문자열 한번에 받기 안녕하세요 오토입니다. 통신 모듈이나 기타 인터페이스에서 문자열이 정해진 프로토콜이 아닌 길이가 변경되서 들어오면 일반 HAL 드라이버에서 리시브로는 잘안되고 너무 복잡스런 상황이 생깁니다. 하나씩 받아서 링퍼버 만든거에 넣고 링버퍼 확인해서 꺼내오고 초기화 해주고 해봤는데... 항상 느끼지만 복잡하면 실수와 버그가 늘고.. 하다가 머리털 다빠질것같아 여기저기 뒤적거리다가 괜찮을것 같은 소스 땡겨다가 수정좀 했더니 잘돌아가서 메모 합니다 일단 UART2 DMA로 사용할거고 세팅 해줍니다. 통신 모듈이 BAUD RATE가 9600이라 맞춰주고 DMA 챕터? 카테고리? 에서 ADD 해줍니다. 인터럽트 켜주시고 저장하고 코드 제네레이션 해줍니다. 메인에서 UART2 이니셜 되었는지 확인해주고 다음으로 넘어갑니.. 2023. 11. 25.
STM32F103 - GPIO 외부 인터럽드 설정 및 동작 안녕하세요 오토입니다. 이번에는 gpio 인터럽드 설정 및 사용 메모입니다. 먼저 핀설정부터 합니다. ioc 파일 들어가서 GPIO 인터럽트 설정 해주시면 됩니다. NVIC 들어가셔서 인터럽드 Enable 꼭 확인해주세요 안되있을 수 있습니다. 그런다음 stm32f1xx_it.c 인터럽트 핸들러가 있는 소스파일 열어주시면 GPIO 10~15번을 담당하는것같이 생긴 핸들러가 잘 있네요 제가 USER_LABEL로 지정해놓은 USER_FUNC_PIN을 던지구요 타고 들어가보시면 대략적으로 인터럽트 클리어 다시 해주고 CALLBACK 함수 호출합니다. 전달 받은 USER_FUNC_PIN 도 다시 던지네요. 바로 아래 보시면 CALLBACK 함수 있구요 설명 보시면 필요하면 네꺼에 가져다가 써라~ 이렇구요 복사 .. 2023. 11. 18.
stm32cubeIDE 외부 헤더 및 소스 파일 추가하기 안녕하세요 오토입니다. 2023.11.04 - [M's Work] - stm32IDE - uart를 printf로 세팅하는법 지난 포스팅에 이어 지속적인 사용이 가능한 각 함수들을 분리된 헤더 및 소스 파일로 정리하고 있습니다. 매번 uart, i2c, spi, 등등 구현하고 검증하고 진절머리...+탈모 + 면역저하..-> 단명 코스로 갈거같아 요즘시대 무슨 이런게 꽁꽁 싸매고 있을 기술도 아니고 같이 공유하는게 좋은것같습니다. 무튼 복붙을 하더라고 설정을 해줘야 IDE 에서 끌고와서 쿵짝쿵짝 빌드 해줄테니 간단히 오늘은 STM32CUBEIDE 설정 해보도록 하시죠. 간단합니다. 1. 프로젝트에서 새로운 소스폴더 만들어줍니다. (이름은 맘대로) 2. 소스폴더 내에 일반폴더 만들어줍니다.(이름은 맘대로) .. 2023. 11. 11.
728x90
728x90