본문 바로가기
임베디드.일렉트로닉스/STM32

STM32. GPIO 출력속도 향상. 레지스터 직접 접근코드.

by 리치굿맨 2019. 2. 23.



GPIO 출력용 함수 아래 3개 비교. 

- 타겟칩 : STM32L476, 

- IDE : SW4STM32 (gcc)




1. 

void GEN_GPIO_WritePin(ST_PORTPIN * pst_portpin,  GPIO_PinState PinState)
{
 HAL_GPIO_WritePin(pst_portpin->pPort, pst_portpin->Pin , PinState);
}


2.

// 고속화 목적, 실 효과는 상기 GEN_GPIO_WritePin 대비  0.5usec 정도 단축됨.
void GEN_GPIO_WritePin_Low(ST_PORTPIN * pst_portpin)
{
 pst_portpin->pPort->BRR = (uint32_t)(pst_portpin->Pin);

}


3.

// 고속화 목적, 실 효과는 상기 GEN_GPIO_WritePin 대비  0.5usec 정도 단축됨.
void GEN_GPIO_WritePin_High(ST_PORTPIN * pst_portpin)
{
 pst_portpin->pPort->BSRR = (uint32_t)(pst_portpin->Pin);
}



스코프 실측 결과. 


상기 함수1 사용한 경우 

 





상기 함수 2,3 상사용한 경우. 

-아주 조금 빨라진다. 



연관 

동일코드를 GCC로 빌드하는것보다 KEIL 에서 빌드하면 제법 속도향상된다. 상세 : https://igotit.tistory.com/2089




첫등록 : 2019년 2월 23일 

최종수정 : 


본 글 단축주소 : https://igotit.tistory.com/2090





'임베디드.일렉트로닉스 > STM32' 카테고리의 다른 글

NUCLEO-L4R5ZI. 개발보드. STM32L5R5ZI ( LQFP144 )  (0) 2019.07.24
STM32L4+ 시리즈.  (0) 2019.07.17
STM32L4x6. GPIO  (0) 2019.02.21
STM32CubeMX. I2C  (0) 2019.02.17
STM32CubeMX. pin interrupt.  (0) 2019.02.17

태그

댓글0


.    
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     .