你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 串口配置问题

[复制链接]
小小步伐 提问时间:2017-12-5 16:19 /
我在配置stm32 串口1的时候,感觉自己的流程没有问题,但是发送的数据一直是 00
找了个demo 对比了下,也没发现什么问题, 一下配置代码 上面注释部分是demo的,测试ok, 下面是我的配置流程,感觉一个样啊,
怎么就不行了呢,大神求解答!!!
  1. void uart_init(void)
  2. {/*
  3.          //GPIO????
  4.   GPIO_InitTypeDef GPIO_InitStructure;
  5.         USART_InitTypeDef USART_InitStructure;
  6.         NVIC_InitTypeDef NVIC_InitStructure;
  7.        
  8.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //??GPIOA??
  9.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//??USART1??

  10.         //??1????????
  11.         GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); //GPIOA9???USART1
  12.         GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); //GPIOA10???USART1
  13.        
  14.         //USART1????
  15.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; //GPIOA9?GPIOA10
  16.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//????
  17.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //??50MHz
  18.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //??????
  19.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //??
  20.         GPIO_Init(GPIOA,&GPIO_InitStructure); //???PA9,PA10

  21.    //USART1 ?????
  22.         USART_InitStructure.USART_BaudRate = 9600;//?????
  23.         USART_InitStructure.USART_WordLength = USART_WordLength_8b;//???8?????
  24.         USART_InitStructure.USART_StopBits = USART_StopBits_1;//?????
  25.         USART_InitStructure.USART_Parity = USART_Parity_No;//??????
  26.         USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//????????
  27.         USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;        //????
  28.     USART_Init(USART1, &USART_InitStructure); //?????1
  29.        
  30.     USART_Cmd(USART1, ENABLE);  //????1
  31.        
  32.         USART_ClearFlag(USART1, USART_FLAG_TC);
  33.        
  34.         */
  35.        
  36.         //1. gpio_clock on
  37.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
  38.         //2. periph clock on
  39.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
  40.        
  41.        
  42.         //3. gpio_pinAfConfig
  43.         GPIO_PinAFConfig(GPIOA, GPIO_Pin_9, GPIO_AF_USART1);
  44.         GPIO_PinAFConfig(GPIOA, GPIO_Pin_10, GPIO_AF_USART1);
  45.        
  46.         // 4. gpio init
  47.         GPIO_InitTypeDef  GPIO_InitStructure;
  48.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  49.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  50.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10;
  51.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  52.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       
  53.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  54.        
  55.         //5. uart init
  56.         USART_InitTypeDef USART_InitStructure;
  57.         USART_InitStructure.USART_BaudRate = 9600;
  58.         USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  59.         USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
  60.         USART_InitStructure.USART_Parity = USART_Parity_No;
  61.         USART_InitStructure.USART_StopBits = USART_StopBits_1;
  62.         USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  63.         USART_Init(USART1, &USART_InitStructure);
  64.        
  65.         //6. uart enable
  66.         //USART_ClearFlag(USART1, USART_FLAG_TC);
  67.         USART_Cmd(USART1, ENABLE);
  68.        
  69.        
  70. }
复制代码


收藏 评论2 发布时间:2017-12-5 16:19

举报

2个回答
小小步伐 回答时间:2017-12-5 16:25:35
刚查出来了,我 GPIO_PinConfig 函数中 应该用 GPIO_PinSource9 而不是  GPIO_Pin_9

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 哈哈,感谢结贴

查看全部评分

andey 回答时间:2017-12-6 09:58:40
提示: 作者被禁止或删除 内容自动屏蔽

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版