ARM 마이크로에서 OLED 디스플레이에 표시하기 위해 snprintf가있는 문자열에 정수를 인쇄하려고합니다. 그러나 % d 또는 % u를 사용하면 마이크로가 잠기고 실행이 중지됩니다. % x 또는 % c를 사용하면 문제가 없지만 출력은별로 유용하지 않습니다.% d 또는 % u를 표시 할 때 snprintf가 중단된다
이 문제가 발생할 수있는 이유는 무엇입니까? 불행히도 디버깅 할 JTAG 장치에 액세스 할 수 없습니다. 나는 arm-none-eabi-gcc를 사용하여 컴파일하고 있으며 모두 메이플 미니로 실행 중입니다.
UPDATE
전달 값 < (10)는 작동하도록 보인다.
'int'를 스택으로 밀어 넣고 있습니까? '% d'는'% c'보다 큽니다. 그래서'char'를 누르면'% c'와 함께 작동하지만'% d'과 충돌합니다.'snprintf'를 호출 할 때'yourvariable' 대신'(int) yourvariable'을 지정하십시오. –
@ todda.speot.is : 올바르지 않습니다. 'printf'에 전달되면,'% d'와'% c'는 모두 같은 타입을 지정합니다 :'int'. –
프로모션 유형! 나는 잊었다. –