• Daum
  • |
  • 카페
  • |
  • 메일
  • |
 
인공지능로봇연구실
 
 
 
카페 게시글
과제게시판 Cortex-m3 USART
1101064 최민기 추천 0 조회 50 16.03.08 01:25 댓글 12
게시글 본문내용
 
다음검색
첨부된 파일
댓글
  • 16.03.08 09:58

    첫댓글 1. usart2,3초기화함수는 분리할것-> llio.c에 있는 초기화 함수를 usart2,3버전으로만 바꾸면 됨
    2. llio.c에 보면 usart1을 이용한 getchar(1문자입력), putchar(1문자출력)함수가 있잖아 그걸 usart2,3버전으로 변경만 하면 됨. 일단 한문자 입출력하는 함수만 만들어서 테스트할것.

  • 작성자 16.03.08 10:04

    네 알겠습니다. 수정해보도록 하겠습니다.

  • 16.03.08 10:08

    근데 usart3는 커넥터가 없어서 테스트가 안되겠네요

  • 작성자 16.03.08 14:51

    이런식으로 하면 안될까요? max3232를 꼭 거쳐야하나요?

  • 16.03.08 15:02

    한쪽은 ttl규격이고 한쪽은 rs232규격인데 규격이 다르면 신호크기,극성,논리값(0,1) 모두가 다른데 통신이 될리가 없지

  • 16.03.08 15:09

    rs232 출력은 ttl보다 전압이 높고 음전압도 있어서 바로 연결하면 탈수있는데->rs232규격을 공부해볼것
    max323칩은 ttl신호와 rs232신호를 상호변환해주는 칩임, 이걸왜써야하냐하면 PC는 rs232통신을 하거든 그래서 PC랑 통신할때는 max3232같은 칩을 써야하고 보드와 보드를 바로 연결할때는 TTL신호를 바로 연결해도 됨 즉, 보드와 보드를 바로붙일때는 max3232칩이 필요없어요

  • 16.03.08 15:10

    usart1은 이미 쓸수있도록 되어 있으니 usart2만 살려놔도 될것같다. 2채널만있으면 나중에 테스트할때 충분하겠지요 usart1을 쓸때는 printf,scanf함수를 이용하면 되고 usart2는 니가 만들함수를 써야겠지

  • 작성자 16.03.08 15:17

    아... 네 알겠습니다. 실험 안해봐서 다행이네요..

  • 16.03.18 12:58

    void USART2_IRQHandler(void)
    {
    if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
    {
    led0_on();
    USART2_Gets(test_rx);
    printf("%s\n",test_rx);
    led0_off();
    USART_ClearITPendingBit(USART2, USART_IT_RXNE);
    }
    }
    -> 인터럽트는 한바이트가 도착할때마다 발생하는데 gets함수는 \n이 들어올때까지 무한루프를 도는함수잖아 저렇게 하면 인터럽트핸들러가 종료되지 않을것 같은데 종료되지 않으면 두번째 바이트부터는 수신이 안될텐데

  • 16.03.18 13:00

    인터럽트핸들러에서 무한루프나 printf함수같이 처리시간이 많이 걸리는 코드는 쓰면 안되구요 핸들러안에서는 수신한 한바이트만 처리하는(배열을 잡아놓고 도착한 한바이트를 꺼내서 배열에 저장하는) 코드를 작성하고 디버깅용 코드는(printf ,gets관련)는 main에서 사용 gets를 사용할려면 보내는쪽에서 \n를 보내주어야 겠지요

  • 16.03.18 20:44

    #ifdef VECT_TAB_RAM
    /* Set the Vector Table base location at 0x20000000 */
    NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
    #else /* VECT_TAB_FLASH */
    /* Set the Vector Table base location at 0x08000000 */
    NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
    #endif
    ->이코드는 SystemInit()안에 있으므로 없어도 됨

  • 16.03.18 20:45

    usart2의 초기화와 관련된 부분만 남기고 다른장치를 건드린다던가 관련없는 코드는 지울것

최신목록