我想使用printf在ARM微控制器的串行端口上显示文本。我无法这样做。任何帮助表示赞赏。
我的init_serial看起来像这样

void init_serial (void)
{
PINSEL0 = 0x00050000; /* Enable RXD1 TxD1 */
U1LCR = 0x00000083; /*8 bits, 1 Stop bit */
U1DLL = 0x000000C2; /*9600 Baud Rate @12MHz VPB Clock */
U1LCR = 0x00000003; /* DLAB=0*/
}

这显然是错误的。

最佳答案

对于微控制器,通常必须定义自己的putc函数以将字节发送到所使用的UART。 print然后将呼叫您的putc

查看编译器随附的库的文档。

注意,这与初始化UART完全无关。重要的是您使用的是哪个UART。

(关于一个不相关的问题,而不是说:

PINSEL0 = 0x00050000; /* Enable RXD1 TxD1 */
U1LCR   = 0x00000083; /*8 bits, 1 Stop bit */


通常有用于寄存器的#define(通常)以提高可读性,提供指向文档中位名称的链接,并减少在这样的每一行上添加和维护注释的需求。例如:

PINSEL0 = PICSEL0_RXD1EN | PICSEL0_TXD1EN;
U1LCR   = U1LCR_8BITS | U1LCR_1STOPBIT;


..等等。)

关于embedded - 使用Printf在ARM微 Controller 的串行端口上显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1699763/

10-09 12:30