OpenEdv-开源电子网

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

求助,看了原子哥的USART视频自己写了个程序,好像不能回显找了好久也没找到解决方法,希望大家一起来发现

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2020-8-3
在线时间
5 小时
发表于 2020-8-4 07:18:50 | 显示全部楼层 |阅读模式
1金钱
简单介绍下我把原子哥的视频例程写入开发板,串口可以使用所以排除硬件问题,
然后仔细对照例程看各个函数的初始化配置好像有没有什么错误,
只是在开发板中向32发送数据得不到回显,然后单独使用senddata函数对串口发送数据能够得到数据,
然后利用仿真看到RXNE标志位有置1,但好像不执行中断函数,求解///


//串口初始化,GPIO,NVIC等配置
void Usart_Config(void )
{
    GPIO_InitTypeDef    GPIO_InitStruct;
    USART_InitTypeDef    USART_InitStruct;
    NVIC_InitTypeDef     NVIC_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE );
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
   
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
   
    GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;

    GPIO_Init(GPIOA, &GPIO_InitStruct);
   
    USART_InitStruct.USART_BaudRate =115200 ;
    USART_InitStruct.USART_HardwareFlowControl =USART_HardwareFlowControl_None  ;
    USART_InitStruct.USART_Mode =USART_Mode_Rx|USART_Mode_Tx;
    USART_InitStruct.USART_Parity = USART_Parity_No;
    USART_InitStruct.USART_StopBits =USART_StopBits_1;
    USART_InitStruct.USART_WordLength =USART_WordLength_8b ;
   
    USART_Init(USART1,&USART_InitStruct);
  
    USART_Cmd(USART1,ENABLE);
   
    USART_ITConfig( USART1,USART_IT_RXNE,ENABLE);
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
   
    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE ;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
   
    NVIC_Init(&NVIC_InitStructure);
}
//中断函数

void  USART1_IRQnHandler(void)
{
    uint8_t     res;

  if(USART_GetITStatus(USART1,USART_IT_RXNE)){
    res=USART_ReceiveData(USART1);
        
    USART_SendData(USART1,res);
    }

}
//主函数

int main(void)
{
    Usart_Config();
      while(1)
    {
    }
}




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-8-5 00:36:21 | 显示全部楼层
仿真,对比 下UART的寄存器差异,就很容易找问题了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-30 15:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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