USART1->DR=1,串口打印数据03 03 03,百思不得其解

2019-07-20 07:02发布

如题,是不是我串口初始化有问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
qiuzhicheng
1楼-- · 2019-07-20 10:09
open12138 发表于 2018-7-25 16:20
板子是 f103,库函数版本是f10x

你的外部晶振是多少?f1的默认是8M
qiuzhicheng
2楼-- · 2019-07-20 13:23
 精彩回答 2  元偷偷看……
xuyaqi
3楼-- · 2019-07-20 17:25
串口初始化正常吗,串口调试波特率对不对
open12138
4楼-- · 2019-07-20 22:32
串口初始化没问题,波特率也没问题,1 打印 03 2打印04 3打印07
qiuzhicheng
5楼-- · 2019-07-21 04:05
 精彩回答 2  元偷偷看……
open12138
6楼-- · 2019-07-21 04:06
int main(void)
{
        unsigned char cStatus;
        u8 t;
        delay_init();                     //延时函数初始化       
        USART2_Init(115200);   //串口初始化为9600
        do
        {
          USART2->DR = 0x11;
} while (1);



void USART2_Init(u32 My_BaudRate)
{
        GPIO_InitTypeDef GPIO_InitStrue;
        USART_InitTypeDef USART_InitStrue;
        NVIC_InitTypeDef NVIC_InitStrue;
       
        // 外设使能时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
        USART_DeInit(USART2);  //复位串口2 -> 可以没有
       
        // 初始化 串口对应IO口  TX-PA2  RX-PA3
        GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP;
        GPIO_InitStrue.GPIO_Pin=GPIO_Pin_2;
        GPIO_InitStrue.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStrue);
       
        GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING;
        GPIO_InitStrue.GPIO_Pin=GPIO_Pin_3;
  GPIO_Init(GPIOA,&GPIO_InitStrue);
       
        // 初始化 串口模式状态
        USART_InitStrue.USART_BaudRate=My_BaudRate; // 波特率
        USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None; // 硬件流控制
        USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; // 发送 接收 模式都使用
        USART_InitStrue.USART_Parity=USART_Parity_No; // 没有奇偶校验
        USART_InitStrue.USART_StopBits=USART_StopBits_1; // 一位停止位
        USART_InitStrue.USART_WordLength=USART_WordLength_8b; // 每次发送数据宽度为8位
        USART_Init(USART2,&USART_InitStrue);
       
        USART_Cmd(USART2,ENABLE);//使能串口
        USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//开启接收中断
       
        // 初始化 中断优先级
        NVIC_InitStrue.NVIC_IRQChannel=USART2_IRQn;
        NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;
        NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;
        NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;
        NVIC_Init(&NVIC_InitStrue);
}

一周热门 更多>