今天我尝试用PROTUES来仿真串口通信,但是全部调整完后,串口始终是乱码,通过在网上了搜了很久也没找到根本原因,于是乎自己进行无头苍蝇的尝试让我找了规律。
我买之前买的是野火的板子 所以就直接用了他们的程序,
#define DEBUG_USARTx USART1
#define DEBUG_USART_CLK RCC_APB2Periph_USART1
#define DEBUG_USART_APBxClkCmd RCC_APB2PeriphClockCmd
#define DEBUG_USART_BAUDRATE 115200
int main(void)
{
// 来到这里的时候,系统的时钟已经被配置成72M。
LED_GPIO_Config();
KEY_GPIO_Config();
USART_Config();
while(1)
{
if( Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN) ==KEY_ON )
LED_G_TOGGLE;
printf("还得天天学习啊\r");
Delay(0X9FFFF);
}
}
这里命名已经设置了115200的波特率,但是Protues老哥 去给我这样的显示
直接说我最后得出的结果吧
就是说他这仿真软件的波特率是(CPU主频÷外部晶振)×程序波特率。也就是72/8*115200=1036800。
可我时钟不能知道是什么原因导致的,哪位大神可以给讲解一下,不懂得也可以按着我这个方法去尝试一下。是可以决绝当下的仿真问题,调试程序