用UART写了一段Bootloader代码,遇到了一个很奇怪的现象。
代码如下:简单介绍一下就是先统一配置MCU的IO端口,然后配置串口参数,然后循环发送‘0’和'\r’。16进制是0x30 0x0d
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
RCC_HSE_Configuration();//外部高速时钟初始化
SysTick_Init();
IO_Init();//初始化板子端口
Uart_Init(115200);//初始化串口
while (1)/* Infinite loop */
{
UART_SendByte( '0');
UART_SendByte('\r');
Delay(1000);
}
}
void IO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
// 配置 USART1 Tx (PA.09) 作为功能引脚并上拉输出模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA, GPIO_Pin_9);
//配置 USART1 Tx (PA.