今天看到有人提问说如何实现16mcu打印功能使用(基于IAR编译器).使用这里特意准备说一下如何基于iar编译环境下实现16位mcu打印功能运用printf。
要实现这个功能,只要两个步骤:
- 配置option选项,选择full dlib
- 申明函数fputc和fputs:
/** * printf() function using */ #define UART_PRINTF #ifdef UART_PRINTF int fputc(int _c, register FILE *_fp); int fputs(const char *_ptr, register FILE *_fp); int fputc(int _c, register FILE *_fp) { while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = (unsigned char) _c; return((unsigned char)_c); } int fputs(const char *_ptr, register FILE *_fp) { unsigned int i, len; len = strlen(_ptr); for(i=0 ; i<len ; i++) { while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = (unsigned char) _ptr[i]; } return len; } #endif
至此完成printf函数功能。(ccs编译环境下可以参考:https://processors.wiki.ti.com/index.php/Printf_support_for_MSP430_CCSTUDIO_compiler)
- 实例: printf("hello world.%d ",i++); 打印“hello world”与变量i的值。
谢谢。
End.