NBK-RD8x3x串口调试

文章介绍了如何在MCU开发板上实现printf调试,提供了两种串口配置方法:一种是通过添加USCI1.c驱动文件并重定向_putchar函数;另一种是直接在main.c中添加代码和xprintf.c驱动。在第二种方法中遇到了串口打印乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容借鉴大佬:【新提醒】【新定义MCU开发板测评】实现printf调试 - - 21ic电子技术开发论坛

使用注意点以及遇到的问题:

在使用串口调试工具需要注意:RXD接板子上的RX,GND接VSS。原理图上DIO引脚对应芯片TX,板子上标注的需要接RX脚。

两种使用串口方式:

方式一:新建工程之后,添加USCI1.c驱动文件

 在SC_Init()中添加:

P1CON&=0xf5;//设置P1强推挽输出
P1PH|=0x0A;
USCI1_ITConfig(DISABLE,LOW);
USCI1_UART_Init(32000000,115200,USCI1_UART_Mode_10B,USCI1_UART_RX_ENABLE);

main.c中添加:

#include<stdio.h>


char putchar(char c)//重定向
{
    USCI1_UART_SendData8(c);
    while(!USCI1_GetFlagStatus(USCI1_UART_FLAG_TI));
    USCI1_ClearFlag(USCI1_UART_FLAG_TI);
    return c;
}

此时串口配置完成。

方式二:main.c中添加以下代码。再添加置顶大佬中的xprintf.c驱动文件,即可使用串口打印

void delay(uint16_t nms)
{
        uint16_t i,j;
        for(i=0;i<nms;i++)
                for(j=0;j<10000;j++)
                ;
}
void Uart1_Init(unsigned int Freq,unsigned long int baud)
{
    P1CON&=0xf5;
    P1PH|=0x0A;
    OTCON|=0xc0;
    US1CON0=0x50;
    US1CON1=Freq*1000000/baud;
    US1CON2=(Freq*1000000/baud)>>8;
}

void Uart1_Send(int value)
{
    US1CON0=US1CON0&0xFD|0x02;
    US1CON3 = (uint8_t)value;
    while((US1CON0&0x02) == 0x00);
}

只不过使用该方式时遇到串口打印乱码问题, 没能力解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

brepot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值