×
单片机 > 单片机程序设计 > 详情

MSP432实现printf 输出

发布时间:2021-01-22 发布时间:
|

采用printf输出, 在单片机调试中当然是很方便的了。最近也是遇到了同样的问题,网上去搜大部分是STIM32,而且也没有找到调试成功的例子。这次我再MSP432,CCS上调通了, 贴出来记录一下。


要实现printf,就需要重写两个函数:


int  fputc(int _c, register FILE *_fp)


int  fputs(const char *_ptr, register FILE *_fp)


最开始我只写了 fputc( ), 发现只能输出字符串, 无法输出格式化的字符串,比如带%d的。 


最开始不知道为什么, 后来重写了fputs( )就可以了。


int  fputc(int _c, register FILE *_fp)

{

    MAP_UART_transmitData( DEBUG_UART_MODULE , (uint8_t) _c);

     while (!MAP_UART_getInterruptStatus(DEBUG_UART_MODULE,

                                        EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG));

     EUSCI_A_CMSIS(DEBUG_UART_MODULE)->IFG |= (EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG);

    return _c;

}

int  fputs(const char *_ptr, register FILE *_fp)

{

uint16_t i, len;

len = strlen(_ptr);

for(i=0; i

{

MAP_UART_transmitData( DEBUG_UART_MODULE , (unsigned char)_ptr[i] );

while (!MAP_UART_getInterruptStatus(DEBUG_UART_MODULE,

EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG));

EUSCI_A_CMSIS(DEBUG_UART_MODULE)->IFG |= (EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG);

}

    return len;


}


代码也很简单, 串口初始化的过程我就不写了,两个函数主要是实现串口发送的功能。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈msp430f5529入门(2)----时钟配置.例程分析