Ale*_*der 2 embedded microcontroller printf serial-port
我想使用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*/
}
Run Code Online (Sandbox Code Playgroud)
这显然是错的.
对于微型控制器,您通常必须定义自己的putc函数以将字节发送到您正在使用的任何UART.print然后会打电话给你putc.
查看随编译器提供的库的文档.
请注意,这与您初始化UART的方式完全无关.所有的事情就是该你使用的UART.
(在一个不相关的问题上,而不是说:
PINSEL0 = 0x00050000; /* Enable RXD1 TxD1 */
U1LCR = 0x00000083; /*8 bits, 1 Stop bit */
Run Code Online (Sandbox Code Playgroud)
通常有#defines用于寄存器(通常)有助于提高可读性,提供文档中位名称的链接,并减少在这样的每一行上添加和维护注释的需要.例如:
PINSEL0 = PICSEL0_RXD1EN | PICSEL0_TXD1EN;
U1LCR = U1LCR_8BITS | U1LCR_1STOPBIT;
Run Code Online (Sandbox Code Playgroud)
..等等.)