我想使用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/