본문 바로가기

프로젝트 기록/23SEMA_Control_STM3247

통신(UART, SPI, CAN)/ 어디에 어떻게 쓸 것인가? UART 이 UART_Trasnmit() 를 대신하는 printf() 함수 사용 시 주의점: 반드시 전송하는 문자열의 끝이 newline(\n) 으로 끝나야 함. 즉, 내부에서 \n 이 들어올 때 까지는 전송을 시작하지 않음 SPI: 시리얼통신 중 동기식 통신. MCU, Shift register 등 소형 패리패럴들 데이터 전송 양방향 통신 가능 = 전이중 통신 마스터 슬레이브 모드 Chip select 라인으로 여러 슬레이브 선택 가능 신호 4가지 지정해야 함 SCLK: serial clock. 직렬 클럭. 마스터 출력, 슬레이브로 입력. 동기화 신호로 역할, 즉 통신 clock. 이 클럭으로 SPI통신 주기 설정 MOSI: Master Output Slave Input, 마스터에서 슬레이브로 데이터 .. 2022. 9. 28.
Peripheral 중 External Interrupt 사용 내용: NUCLEO 보드의 B1버튼 누르면 외부 인터럽트 발생- LED가 2번 깜빡이는 동작 인터럽트 관련 설정하고 코드 만들면 바로 인터럽트 관련 코드 생김 인터럽트 발생 시 함수 호출 순서는 EXT15_10_IRQHandler() HAL_GPIO_EXTI_IRQHandler() HAL_GPIO_EXTI_Callback() 코드는 다 생기니까 우리가 수정할 부분은 Callback 함수 실행 내용 만들면 됨 인터럽트 관련 설정하려면 NVIC 에서 해야 함 할 수 있는 것들 시스템 관련 인터럽트 활성화/비활성화 인터럽트 우선순위 변경 인터럽트: 기본 설정은 rising edge로 되어있는데, BI 푸쉬버튼 회로도 보면 버튼을 눌렀을 때 신호가 High에서 LOW로 바뀌므로 falling edge로 설정 변경 2022. 9. 28.
USART, UART차이점 정리/ 시리얼 통신(USART) 정리: 클락의 유무 (유:USART, 무:UART) USART(Universal Synchronus/asynchronous R T) = 범용 동기/비동기화 송수신 (반이중) : 데이터 동기화를 위해 별도 클록 신호 전송. 클락의 유무만 체크하여 데이터 송수신, 효율이 높고 동기식이라 속도도 빠름, 클락 핀때문에 비싸고 어려움 클락때문에 데이터, 타이머가 모두 필요하고 속도가 고정되어 있음(빠름), 데이터를 일반적인 블럭 형태로 전송 UART(Universal Asynchronous Receiver Transmitter)= 범용 비동기화 송수신 (전이중) : 데이터만 보냄. 데이터 시작과 끝을 알기 위해 Start Bit(항상 0), Stop Bit(항상 1)가 필요함 (+오류검출 Pariry비트) 속도가.. 2022. 9. 28.
stm32 기본/ LED toggle 1. LED toggle while안에 HAL_GPIO_TogglePin (LD2_GPIO_Port, LD2_Pin); HAL_Delay (500); HAL library 사용, LD2(PA5) - GPIO로 설정되있는거 확인 +) RCC란 RCC: 오실레이터를 하드웨어적으로 16MHz적용해도, STM32는 32비트라 내부 PLL회로를 거쳐 더 높은 클럭을 만들어 낼 수 있음. 그걸 설정하는 게 RCC임 지금은 일단 Disable로 설정하고 실습 STM32 시스템에 클럭을 공급하는 방법은 HSI, HSE, PLL 이 있는데, PLL은 다시 그 소스로 HSI를 사용하는 방법과, HSE를 사용하는 방법이 있다. +) 클럭설정 F103 시리즈 최대 클럭은 72MHz, 하지만 내부 클럭으로는 64MHz까지 가능.. 2022. 9. 28.
STM32/ 패리페럴 기본 지식 패리페럴들을 제어하려면 레지스터 설정부터 해야함. 레지스터 레지스터란 전자기기의 패널과 같은 것,, ex)공기청정기 키려면 전원 누르고 세기 강으로 선택 등.. 즉, 레지스터: 기능들을 조작하고 어떤 상태인지 확인할 수 있도록 해 주는 것 Control 레지스터: 기능을 조작하기 위해 존재 Status 레지스터: 어떤 상태인지 알려줌 레퍼런스 매뉴얼을 보고 모듈(기능)의 Base Address(메모리 주소) 체크 ex) 0xF010 0000~ F019 FFFF GTM_TOM0_TGC0_GLB_CTRL 레지스터를 세팅하려면 해당 레지스터 Start Address 찾기 r: read w: write rw: read/ write 해당 비트를 SW로 할 수 있는 것들의 상태 표시 그리고 해당 메모리에 접근하여 .. 2022. 9. 28.