전체 글50 STM32F3xx 에서 SPI 이용하기 STM32F1xx에서 사용하던 SPI 예제를 STM32F3xx에서 이용하려면 몇가지 변경을 해 주어야 한다. 1. SPI_RxFIFOThresholdConfig 추가STM32F1xx에서 사용하던 SPI 예제에는 없는 아래의 파란색 글씨 부분 'SPI_RxFIFOThresholdConfig'을 추가해 주어야 한다. /* Initialize the FIFO threshold */ SPI_RxFIFOThresholdConfig(SPIx, SPI_RxFIFOThreshold_QF); /* Enable the SPI peripheral */ SPI_Cmd(SPIx, ENABLE); 2. SPI_I2S_Senddata()를 변경STM32F1xx 예제에서 사용하던 data 전송을 위한 명령어 SPI_I2S_Sendd.. 2013. 11. 9. STM32 DFU를 활용한 다운로드 ST 마이크로 사의 Cortex-M3, Cortex-M4 기반의 칩들에서 USB로 DFU를 이용하여 바이너리 코드를 다운로드 하는 방법을 설명한다.1. DFU 모드 진입 방법아래 Table 2.를 보면 BOOT1, BOOT0 핀을 이용하여 Boot mode로 진입하게 된다. STM32F3xx의 경우는 BOOT0 핀만 존재한다. BOOT1은 ST의 전용 다운로드 프로그램의 Option byte를 이용하여 설정하게 된다. Default 값은 0이므로, STM32F3xx의 경우는 BOOT0 핀만 5V (High)에 연결한 상태에서 USB로 전원을 넣으면 System memory로 잡히면서 DFU가 가능한 USB 장치로 인식된다.(STM32F3xx의 경우는 DFU F/W가 내장되어 출시된다. 따라서 별도의 DF.. 2013. 11. 8. C 언어에서 extern과 staic 변수의 이해 C언어에서 extern과 static의 사용법을 알아보자. 1. 전역 변수 앞에 쓰이는 extern 과 static 1) extern 전역 변수 전역 변수를 선언만하고 나중에 사용할 때 값을 지정할 수 있다. int global_var; void main() { global_var = 1; printf("%d \n", global_var); } 아래처럼 사용하면 변수를 선언하면서 초기화를 동시에할 수 있다. int global_var = 1; void main() { printf("%d \n", global_var);; } 이제 앞의 에서 선언한 전역 변수를 다른 파일의 코드에서 사용하려면 아래와 같이 하면된다. extern int global_val; int sub() { global_val = 1 p.. 2013. 6. 16. gcc optimazation option (STM32F3, STM32F4) 테스트 하고 있는 MCU에서 gcc 최적화 옵션을 어떻게 설정하느냐에 따라서 다른 결과를 경험했다. 이것도 모르고 일주일 정도 삽질을 했다. Cortex-M4 MCU를 gcc-arm을 이용하여 빌드 시에, gcc Option 및 MCU 속도에 따라서 정상적인 결과가 나오기도 하고, 원하지 않는 엉뚱한 결과가 나오기도 했다. 처음에는 gcc 최적화 옵션의 문제인지 모르고 다른 쪽의 문제인지 알고 한참을 검토했으나, 결국 최적화 옵션이 문제였다. 아래는 gcc 옵션에 따라서 알고리즘의 정상 동작/비정상 동작의 결과를 정리한 것이다. Cortex-M4 기반 MCU Clock -Os 옵션 -O0, -O3 옵션 STM32F4 168 MHz 알고리즘 정상 동작 알고리즘 정상 동작 STM32F3 72 MHz 알고리즘.. 2013. 3. 12. 이전 1 ··· 4 5 6 7 8 9 10 ··· 13 다음