打印

MSP432实现printf 输出

[复制链接]
829|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
myiclife|  楼主 | 2023-3-22 17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要实现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<len; 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;

}

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


使用特权

评论回复

相关帖子

沙发
zwsam| | 2023-3-30 10:47 | 只看该作者

使用特权

评论回复
板凳
xyz549040622| | 2023-3-30 22:07 | 只看该作者
int fputs 把字符串写入到指定的流 stream 中,但不包括空字符。
int fputc把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
所以两个都必须重写,只写一个是不可以的。

使用特权

评论回复
地板
biechedan| | 2023-4-7 09:41 | 只看该作者
可以在MSP432中使用printf函数输出调试信息?

使用特权

评论回复
5
sanfuzi| | 2023-4-7 10:23 | 只看该作者
MSP432可以通过使用C标准库的printf()函数来实现printf输出。

使用特权

评论回复
6
gygp| | 2023-4-7 18:30 | 只看该作者
msp432和stm32语言差距大吗   

使用特权

评论回复
7
uptown| | 2023-4-8 19:06 | 只看该作者
要使用printf()函数,首先需要将printf.h头文件包含在源文件中,然后调用printf()函数,并传入一个格式化字符串,以及要输出的可选参数。

使用特权

评论回复
8
jkl21| | 2023-4-8 19:25 | 只看该作者
在MSP432上配置串口,包括波特率、数据位、校验位和停止位等参数。可以使用UART模块来实现串口功能。

在MSP432的代码中添加stdio.h头文件,并使用库函数实现printf输出。具体地,可以使用vprintf函数来实现输出,该函数可以将printf格式的字符串格式化成字符流并发送到串口。

使用特权

评论回复
9
tifmill| | 2023-4-8 20:14 | 只看该作者
要在MSP432中使用printf函数输出调试信息,需要先通过串口连接将输出信息发送到PC终端或者其他设备。

使用特权

评论回复
10
10299823| | 2023-4-8 21:13 | 只看该作者
在MSP432的串口驱动程序中实现发送数据到串口的功能。

使用特权

评论回复
11
mollylawrence| | 2023-4-9 17:00 | 只看该作者
#include "uart.h"

void UART_write(char *buf, int len)
{
  int i;
  for(i=0; i<len; i++)
  {
    while(!(UART->IFG & UCTXIFG)); //等待发送缓冲区空闲
    UART->TXBUF = buf[i]; //发送数据
  }
}

使用特权

评论回复
12
earlmax| | 2023-4-9 17:45 | 只看该作者
msp432芯片串口有几个               

使用特权

评论回复
13
jkl21| | 2023-5-10 20:48 | 只看该作者
msp432芯片串口有几个               

使用特权

评论回复
14
olivem55arlowe| | 2023-5-10 20:53 | 只看该作者
msp432和stm32语言差距大吗

使用特权

评论回复
15
jtracy3| | 2023-5-10 21:53 | 只看该作者
IAR使用printf函数               

使用特权

评论回复
16
cashrwood| | 2023-5-10 22:07 | 只看该作者
msp430和msp432仿真器兼容吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

2342

帖子

1

粉丝