配置 PIC18f2455 以使用 RS232

Configure PIC18f2455 to use RS232

我将 PIC18f2455 的 USART 与 RS232 一起使用,但在配置时遇到了一些问题。

我使用的是 24 MHz Crystal 振荡器。 PLL 通过 6 的预分频器启用(在输入端设置 4MHz)并在输出端提供固定的 96MHz。 后分频器设置为 6,最后为微控制器时钟提供 16MHz。

使用这个时钟,我将 OpenUSART 函数的 SPBRG 设置为 25,波特率为 9600。

这是我的 USART 配置:

#pragma config PLLDIV = 6, CPUDIV = OSC4_PLL6, USBDIV = 2, FOSC = HSPLL_HS OpenUSART(USART_TX_INT_ON & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, 25);

它卡在 OpenUSART 功能上...

对于 16MHz 的微控制器时钟,将 USART_BRGH_LOW, 25 更改为 USART_BRGH_HIGH, 103,这将导致 9,615.38 baud (9600 -0.2%)。为什么不使用 CPUDIV = OSC1_PLL2 给你一个 48 MHz 的时钟?然后你会使用 USART_BRGH_LOW, 77.