일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Kodak 400TX
- Kodak T-Max 100
- Kentmere 400
- Rollei35s
- Kodak 5222
- kodak t-max 400
- 4870
- N80/4
- Leica M7
- Contax G2
- Minolta TC-1
- FujiFilm C200
- cf80/2.8
- M-Rokkor 40/2
- Nikon 28Ti
- fujifilm velvia 50
- cs50/2.5
- Kodak Ektar 100
- Minolta CLE
- SONY A7
- Mamiya 7
- FujiFilm GFX50s
- 2019 유럽여행
- 2018 미국출장
- Hasselblad 500cm
- cf50/4 fle
- ZeissIkon ZI
- G28/2.8
- Germany
- GRD2
- Today
- Total
목록컴퓨터/Firmware (47)
J 창고
USART 를 뚫는 삽질을 시작한 계기도.. Printf 를 사용하려고 했던 것인데... 엌 진작에 좀 제대로 검색을 해 볼걸... 소스에 12345678910111213141516171819202122232425#ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endif /* __GNUC__ */ PUTCHAR_PROTOTY..
RCC 설정 GPIO 설정 USART 설정 VNIC 설정 순으로 설정하면 분명히 된다고 나와있는데... 일단 통신이 오는 것 까진 확인했다.. 여기까지 대략 6시간 본 것 같은...(아 정말 뭔가 이상한거 없었는데 안되다가 갑자기 되서 이건 뭐지 했음....) 그런데 또 문제는 여기서 발생.. 분명히 통신은 되는데 주고 받고도 되는데 쓰레기값으로 나오는 것임.. 위의 터미널처럼.... 요상하게 안되는 문제가... 그러다 문득.. USART 찾아보면서 어느 한 블로그에서 본 글이였는데.. 클럭 설정이 이상해서 뭔가 찾아서 고쳐야 해야 제대로 동작했다는 글이였다.. 그래서 지금 클럭이 얼마인지를 확인하려고 보니 지금 시리얼 통신도 안되는데 뭐 어찌 확인하지..... 해서 디버그모드로 확인 RCC_Clocks..
Ebay에서 몇 천원 하는STM32F103C8 보드를 하나 구매했다. 배송 오는데 한... 5주 걸린듯...;;;; 일단 시작하기 앞서 ST-Link/V2 드라이버도 좀 설치해 주고 컴파일러도 설치좀 해 주고 서류들도 다운 받아주고... 거 이상하게 ST는 문서 찾기가 참 ㅈㄹ 같다는 생각이.. 그거 말고도 Dsp Library를 찾는데 한참을 찾아도 안나와서 그냥 구글링 했더니 바로 나오는... 덜덜;; =================================================================================== PORTC-13 에 파란색 LED가 연결 되어 있어서 (Active Low) 한번 작동해 보고자 자료 찾아보고 Datasheet 보면서 해서 6시간만에...
AVR Studio6 에서 UART나 LCD를 사용하는데 함수를 다 작성해야하는 귀찮은 점이 있는데(codevision은 다 있어서 편했는데 ㅠㅠ) 이걸 printf나 sprintf 로 연결할 수 있는 방법이 있다 일단 sprintf를 사용하기 위해선 프로젝트 속성 -> Toolchain -> AVR/GNU Linker -> Libraries 에서 libprintf_fit 을 추가해 준다. 그리고 프로젝트 속성 -> Toolchain -> AVR/GNU Linker -> General 에서 Link Statically (-Wl, -static)과 Use vprintf library (-Wl, -u, vfprintf) 를 체크해 준다. 그 후에 sprintf를 사용하면 float 까지 잘 나오는 모습을 확..
기본적인 셋팅은 UART Tx 포스팅에서 했던 것과 비슷하고http://wjs890204.tistory.com/762 Rx Enable을 위해UCSR0B에 있는 RXEN0 레지스터도 셋 한다 그런데 이거 구현하는데 문제가 있었는데 엄청 골때렸음.... http://cafe.naver.com/carroty/236713 여기 질문글인데 결국 1byte만 선언된 문자열에 그 이상을 구겨 넣어서 생긴 문제... ㅠㅠ 어쨋건 해결 해서 다행... 이번 포스팅의 내용은 Rx Buffer을 구현하여 시리얼 모니터에 문자열을 보내면 Rx buffer에 저장하고 다시 시리얼모니터에 출력해 주는 역할인 코드 1234567891011121314151617181920212223242526272829303132333435363..
UART 통신을 하려면 Baudrate 설정이 필수적이다. 계산 식은 위의 표와 같이 하면 된다. ex) 9600bps로 통신을 한다면 UBRR = ( 16Mhz / ( 16 x 9600bps) ) -1 = 106.167 이 되므로 UBRR에는 106즉 0x67을 넣어줘야 한다. 물론 UBRR0H와 UBRR0L로 되어 있어 상위바이트와 하위바이트에 나눠서 넣어주면 된다.(9600은 하위 8비트 안에 들어가므로 상위에는 0x00을 넣는다. UDRn 레지스터는 Tx일 때는 Tx로 보낼 데이터를 저장할 Buffer로 사용되고Rx일 땐 데이터를 받을 Buffer로 사용된다. 이 버퍼가 보낼 준비가 되거나받을 준비가 된다면UCSRnA에 있는 UDREn 레지스터가 Set 된다. TXENn 을 통하여 Tx Enabl..