OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4968|回复: 1

[新人求助]F401nucleo串口通信问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-3-28
在线时间
1 小时
发表于 2016-3-28 15:11:04 | 显示全部楼层 |阅读模式
2金钱
求助想用STM32F401RE的板子做个串口通信<-——就是这个

参考原子哥的教程打的代码(见后面),设置波特率115200,结果串口工具测试38400才能正常接收...(功能就是输入什么传回什么)




怀疑可能是时钟频率设置的问题,但是并不知道应该怎么调...求大神们指点

void uart_init(u32 bound){

        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//

       
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); //
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); //
       
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; //
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //
        GPIO_Init(GPIOA,&GPIO_InitStructure); //

   //USART1 3&#245;ê&#188;&#187;ˉéè&#214;&#195;
        USART_InitStructure.USART_BaudRate = bound;//2¨ì&#216;&#194;êéè&#214;&#195;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;//
        USART_InitStructure.USART_StopBits = USART_StopBits_1;//
        USART_InitStructure.USART_Parity = USART_Parity_No;//
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;        //
  USART_Init(USART1, &USART_InitStructure); //3&#245;ê&#188;&#187;ˉ′&#174;&#191;ú1
       
  USART_Cmd(USART1, ENABLE);  //ê1&#196;ü′&#174;&#191;ú1
       
        //USART_ClearFlag(USART1, USART_FLAG_TC);
       
#if EN_USART1_RX       
        USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

        //Usart1 NVIC &#197;&#228;&#214;&#195;
  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =3;               
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //
        NVIC_Init(&NVIC_InitStructure);        //
#endif
}


int main(void){
        int t;
        SystemInit();
        uart_init(115200);
        while(1)
        {
                if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE) == SET){
                        USART_SendData(USART1,USART_ReceiveData(USART1));
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
                }
        }
}





3.jpg
1.jpg
2.jpg
4.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-3-29 21:45:30 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 15:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表