결국 직렬 포트 및 전송 속도의 PCLK2의 관계는 무엇인가?

2019년 6월 5일
버전을 등록하는 이유는, 시리얼 포트 초기화 함수는 두 개의 매개 변수, PCLK2와 결합 소요
라이브러리 함수 버전이, 하나 개의 매개 변수를 바인딩 상태 :

개발자 가이드의 등록 버전에서 다음의 통합 :

전송 속도를 산출한다

경우 OVER8 = 0 때


15426916-f6d7bbe9d17985ff.png
의 image.png
  • 송 / 수신은 전송 속도는?
  • fPCLKx 시리얼 클록이며
    • USART2에 대한 PCLK1 ~ 5
    • USART1 및 USART6에 대한 PCLK2
  • USARTDIV 고정 소수점 서명되지

전송 속도 등록 USART_BRR

각각의 시리얼 포트를 갖는 STM32F4 전송 속도 USART_BRR 레지스터 ,
32 비트, 상위 16 비트는 예약되어있다

15426916-b8a66461c181e307.png
의 image.png

  • 가수는 정수 부분입니다
  • 분획 * 16 (= 16 OVER8 곱한 승산 때 0 = 1 OVER8 얼마나 모르는) 소수 부분

전송 속도 계산 예

1 115200의 시리얼 전송 속도로 설정되는 것으로 가정하고, 84M의 PCLK2 클럭 (즉 APB2 버스 클록 주파수)는
USARTDIV을 찾을

USARTDIV
= fpCLK2 / 16 / 보드
= 84000000/16/115200
= 45.572
따라서,
(45)의 정수 부분, DIV_Mantissa = 45 = 0x2D
0.572의 소수부 DIV_Fraction = 0.572 * 16 = 9.152 =은 0x09

OVER8 비트

수신기 세트 비트 오버 샘플링 : OVER8 비트는
비트가 USART_CR1 내부 레지스터에 설정된
OVER8 = 0 수신기 클럭 고정밀, 좋은 결함 허용 공차를 증가시킬 수 있고, 오버 샘플링의 16 배를 사용하는 경우 때.
OVER8 = 1의 경우보다 고속으로 얻을 수있는 경우.
우리는 일반적으로 더 나은 내결함성을 위해 도입되는 다음 OVER8 = 0으로 시작 OVER8 = 0으로 설정합니다.
OVER8에 대한 자세한 내용은 "STM32F4xx 중국어 레퍼런스 매뉴얼", 제 26.3.3를 참조하십시오.

결론

전송 속도는 PLK이고, 다른 값이 함께 확인 레지스터
일치, 전송 속도, 전송 속도 USART_BRR를 등록하고, 해당 클록 주파수 화학식 상술 OVER8 비트 USART_CR1의 PCLK 레지스터에 의해 결정된다 .
전 레지스터에 전달 된 계산에 관련된 파라미터로서 PCLK의 값
라이브러리 함수의 버전은 상기 클럭 주파수가 다른 수단에 의해 얻어 질 수 있고, 그것은 직접 전송 속도를 설정하는 것이 가능하다
, 즉
// 라이브러리 버전 공극 uart_init (U32 바인딩)
(U32 바인딩 U32 PCLK2가 무효 uart_init //) 버전 등록
이 두 기능을 매개로 결합 할 때, 고려 될 수있는 효과가 동등

HTTPS : //www.jianshu.com/p/cb35cb921a4a 재현

추천

출처blog.csdn.net/weixin_34236869/article/details/91081621