작성
·
452
0
강의와 관련있는 질문을 남겨주세요.
• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)
• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)
• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등)
질문 전달에도 요령이 필요합니다.
• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.
• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.
• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요.
• 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요!
구체적인 질문일수록 명확한 답을 받을 수 있어요.
• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.
• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.
• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다.
기본적인 예의를 지켜주세요.
• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다.
• 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요.
• 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다.
안녕하세요.
1-3장 보면서 강의를 따라하고 있습니다.
ascii값으로 받으면 데이터가 안뜨고 hex데이터로 받으면 98값을 받습니다. main.c에서 "A"를 전달하든 "B"로 수정하여 전달하든 값을 같습니다.
아두이노에서 사용하던 usb to uart 모듈을 사용했는데 이 것이 문제인지 모르겠습니다. 강의에서 보여주신 모듈은 4pin 모듈이지만 제가 가지고 있는 모듈은 6pin 모듈입니다. 제가 가지고 있는 제품은 아래 사진에 첨부했습니다. 참고로 아두이노를 동작시켰을 때는 잘 동작하는 것을 보면 UART 컨버팅 모듈이 잘못된 것 같지는 않습니다. 모듈과 FC의 와이어 연결 상태는 2~3번 확인을 했고 코드도 2~3번 체크를 했습니다. 그래도 문제현상이 해결되지는 않고 있습니다. 무엇이 문제인지 모르겠습니다ㅎㅎ
답변 7
1
아 그렇군요. 근데 점퍼 케이블로 연결한것이 아니라 땜을 하셨나보네요.
혹시 장비가 있으시다면 FC의 TX에서 파형이 잘 관측되는지 확인해보세요.
저에게 소스코드를 보내주시면 제 FC로 한번 확인해보도록 하겠습니다.
lbiith@naver.com
메일로 첨부부탁드립니다.
감사합니다!
1
안녕하세요!
1. 그라운드가 잘 연결되어있는지 확인합니다.
2. 점퍼선에 문제가 없는지 확인합니다. 여분이 있다면 다른 선으로 교체해서 한번 해보세요. 점퍼선에 문제가 있는경우가 상당히 많습니다.
3. 통신속도를 115200 정도로 낮춰서 한번 해보세요.
다 해봐도 문제가 해결되지 않으면 다시 댓글 부탁드립니다!
0
'A', "A"의 차이였네요.
아두이노와 파이썬에서는 '' 와 ""의 차이는 없었는데...
LL_USART_TransmitData8(USART6, 'A'); - Okay!
LL_USART_TransmitData8(USART6, "A"); - Nope
0
아 그러시군요! 뭔가 다른 이유같긴 하지만,, 그래도 문제업이 잘 동작한다니 다행입니다.
참고로 아스키 'A' 는 16진수로 0x41 입니다. 0x00과 0xff 사이의 값이 맞습니다.
즉, 'A'를 보낸것과 0x41을 보낸것은 같은 거죠 ㅎㅎ
0
HAL드라이버를 사용했을 때 정상동작을 해서
LL드라이버 찾아보니 아래와 같이 레퍼런스 되어있습니다. Value에 넣을 수 있는 값이 0x00~0xFF까지 가능하다고 하여 0xFF 넣으니 잘 수신되네요
/**
* @brief Write in Transmitter Data Register (Transmit Data value, 8 bits)
* @rmtoll DR DR LL_USART_TransmitData8
* @param USARTx USART Instance
* @param Value between Min_Data=0x00 and Max_Data=0xFF
* @retval None
*/
__STATIC_INLINE void LL_USART_TransmitData8(USART_TypeDef *USARTx, uint8_t Value)
{
USARTx->DR = Value;
}
0
안녕하세요
메일로 코드 보내드렸습니다.
오실로스크포로 FC TX(Uart converter RX)를 확인해보았습니다. 1초에 한번씩 데이터를 보내는 것은 확인되었습니다. 다만 전달된 데이터가 어떤 값인지는 해석하지는 못했습니다(사진 우측).
점퍼는 수땜하지 않았고 pin header 부분이 혹시 냉납이 발생되었을까봐 살짝 인두로 지졌습니다..ㅎㅎ
0
상기 세가지 내용 확인했습니다. 혹시 몰라 4pin header살짝 땜 리터치를 했지만 현상을 동일합니다.
usb converter 드라이버도 재설치하였고 장치는 잘 잡혀져 있습니다.
LL_USART_TransmitData8(USART6, "A"); 에서
두번째 인수 "A"는 문자열 상수의 주소를 전달하는 표현이라 이상한 값이 출력될 수 있습니다.
자세한 내용은 C언어의 문자 및 문자열에 대해 공부하시면 확인하실 수 있습니다~