[FreeRTOS] freertos_mpool.h, freertos_os2.h No such file or directory issue
·
MCU/stm32
서론stm32cubeIDE에서 freertos를 사용하려고 하면  "freertos_mpool.h""freertos_os2.h"  위 두 헤더파일이 없어 빌드가 안 되는 상황이 발생한다. 다른 경로에 파일이 있긴한데 프로젝트 경로로 옮겨줘도 다른 에러가 나온다.   해결 방법 펌웨어 버전을 1.8.5 버전으로 바꾸면 해결됨  STM32CubeMX 6.13.0 버전에서는 해결된 문제라고 하네요 출처https://community.st.com/t5/stm32cubeide-mcus/problems-with-stm32f103zet6-using-stm2cubeide-to-build-freertos/td-p/712300?lightbox-message-images-712300=85895i03A267CFF0FF44D3
[ESP-IDF] WiFi
·
MCU/esp32
#include #include "freertos/FreeRTOS.h" //for delay,mutexs,semphrs rtos operations#include "driver/gpio.h"#include "esp_wifi.h"#include "nvs_flash.h" //non volatile storage#include "esp_event.h" //for wifi event//#include "lwip/sys.h" //system applications for light weight ip apps//#include "lwip/err.h" //light weight ip packets error handling//#include "esp_system.h" //esp_init funtions esp_err..
ST LINK
·
MCU/stm32
SWD(Seruak Wire Debug) 통신을 위해 사용한다.    처음 stm32를 접하면 여기서부터 애를 먹을 수 있는데 보통 해줘야 할게 1. st link 드라이버 설치 (설치해 줘야 컴퓨터에서 인식한다) 2. st link 펌웨어 업데이트  검색하면 나오니까 검색 ㄱㄱ  Nucleo보드 같은 경우는 st link 회로가 보드 안에 같이 내장되어 있다. 그래서 usb 5핀으로도 업로드/디버깅이 가능함 ㅇㅇ  st사에서 공식적으로 회로도를 제공하지는 않지만 nucleo 회로도 보면 st link 회로도가 있긴 하다.  STM32F103CBT6으로 설계된 거 같은데 봐도 뭔 소리인지 모르겠다.  위에 회로도 참고해서 나중에 시간 나면 st link를 직접 만들어보는 것도 재밌을 것 같다.
[ESP-IDF] UART
·
MCU/esp32
개발 IDE : ESP IDF (on vscode) 개발 보드 : Lolin D32 0. 설명ESP32에는 3개의 UART 채널이 있다. (UART0, UART1, UART2) 보통 UART0이 기본 UART 포트로 디버깅, 시리얼모니터 연결 등에 사용된다.  예를 들어 아두이노에서 Serial.begin()과 같은 함수를 사용해서 시리얼 모니터에 문자를 출력하면 uart0 채널을 사용한 것이다.     1. 코드     2. 코드설명#include "driver/uart.h"uart 관련 api include    uart_config_t uart_config = { .baud_rate = 115200, .data_bits = UART_DATA_8_BITS, .parity = UART_..
[NUCLEO-F103RB] GPIO
·
MCU/stm32
0. 개발 환경IDE: STM32CubeIDE개발보드: NUCELO-F103RB   1. 내장 LED 회로도F103RB보드에는 사용자 응용으로 내장해 둔 LED가 있다. 회로에는 LD2이다. Schematic을 보면 LD2가 PA5에 연결되어 있는 것을 확인할 수 있다.Source current라 PA5의 출력이 HIGH가 되어야 LED에 불이 켜질 것이다.    2. Pin ConfigurationPA5를 GPIO_OUTPUT으로 설정한다. 처음 프로젝트 생성할 때, nucleo보드로 생성했더라면 이미 자동으로 설정되어 있을 것이다.      그러면 이렇게 코드가 생성된 것을 확인할 수 있다. 기본 세팅들은 이미 전에 했으니 따로 설정할 건 없고 main 함수 안에 잇는 while문에서 작업을 하면 된..
[ESP-IDF] GPIO
·
MCU/esp32
개발 IDE : ESP IDF (on vscode) 개발 보드 : Lolin D32 0. 내장 LED 회로도Lolin D32의 회로도를 보면 LED가 IO5번으로 연결되어있다.Sink current라 IO5번 포트에 LOW(0)을 출력해야 LED에 불이 들어온다.   1. 전체 코드  2. 코드 설명#include "driver/gpio.h"위 헤더파일을 include하여 gpio관련된 api를 사용할 수 있다.   gpio_set_direction(BUILEDTIN_LED, GPIO_MODE_OUTPUT);gpio의 방향을 정하는 함수다. 파라미터로는 포드번호와, 방향이 있다.   두 번째 파라미터에는 다음과 같이 6개의 파라미터가 들어갈 수 있다.    gpio_set_level(BUILEDTIN_L..
[ESP-IDF] 프로젝트 생성
·
MCU/esp32
개발 IDE : ESP IDF (on vscode) 개발 보드 : Lolin D32   New Project 클릭    프로젝트 이름과 타겟 mcu 설정시리얼 포트는 지금 당장 안 잡아도 된다.프로젝트 경로는 가능한 c드라이브 안에서 해주는 게 좋아 보인다. 바탕화면에 만들었더니 경로에 특수문자가 있어서인지 build 시스템인 ninja가 정상적으로 실행이 안되었다   template-app 클릭    참고로 esp-idf로 바꾸면 예제들이 뜬다.    우측 상단 Create project using template template-app 클릭    그럼 하단에 다음처럼 알림창이 뜨는데 Yes 클릭   다음과 같이 프로젝트 파일이 생성된 것을 확인할 수 있다.
[ESP IDF] ninja: error: loading 'build.ninja
·
MCU/esp32
Vscode에서 esp idf를 설치한 후 예제를 업로드 해보려는데 제목과 같은 오류만 계속 뜬다.  ninja: error: loading 'build.ninja': 吏?뺣맂 ?뚯씪??李얠쓣 ???놁뒿?덈떎. * The terminal process"C:\Users\jaewo\.espressif\tools\ninja\1.11.1\ninja.exe" terminated with exit code: 1. 정확하게는 빌드 도중 에러가 발생한다. 며칠동안 삽질한 결과 바탕화면에 프로젝트를 생성해서 경로에 한글이나 특수문자 등 인식할 수 없는 문자가 있어 발생했다는 것을 알았다.  c드라이브내에서 프로젝트 만드니 업로드까지 잘 되는것을 확인했다.
[NUCELO-F103RB] stm32cubeIDE 프로젝트 생성
·
MCU/stm32
사용 보드 : NUCLEO-F103RB개발 IDE : STM32CubeIDE      Board Selector로 들어가서 보드 명을 검색하면 우측하단과 같이 해당 보드가 뜬다. 보드 선택 후 Next 클릭     프로젝트 이름 적고 Finish를 누르면 프로젝트가 생성된다.    Yes 클릭    다음과 같이 프로젝트가 생성된 것을 알 수 있다. 처음에 생 mcu가 아닌 개발보드를 선택했기 때문에 보드와 관련된 기본적인 페리페럴들은 이미 세팅되어 있는 것을 확인할 수 있다. (ex. 내장 LED(PA5), 버튼(PC13) 등..)
[NUCLEO-F103RB] 보드 분석 : OSC 32 kHz clock supply (LSE)
·
MCU/stm32
LSE : 외부에서 제공되는 클럭, HSE에 비해 느리다  1. On-board oscillatorX2 크리스탈을 통해 받는다. ABS-32.768KHZ-6-T 사용을 권장한다.   2. Oscillator from external PC14- SB48 and SB49 ON- R34 and R36 제거 CN7커넥터에 25번 pin으로 클럭을 받는다. 위와 같은 조건이 필요하다.   3. LSE not used - SB48 and SB49 ON- R34 and R36 removed PC14, PC15를 GPIO처럼 사용한다. 위와 같은 조건이 필요하다.