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

使用STM32F030K6 串口1无法接收

[复制链接]
每天几刀 提问时间:2018-5-18 09:59 /
本帖最后由 yinshaojie 于 2018-5-18 10:01 编辑

/* USART1 init function */
static void MX_USART1_UART_Init(void)
{

  huart1.Instance = USART1;
  huart1.Init.BaudRate = 19200;
  huart1.Init.WordLength = UART_WORDLENGTH_8B;
  huart1.Init.StopBits = UART_STOPBITS_1;
  huart1.Init.Parity = UART_PARITY_NONE;
  huart1.Init.Mode = UART_MODE_TX_RX;
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_RXOVERRUNDISABLE_INIT|UART_ADVFEATURE_DMADISABLEONERROR_INIT;
  huart1.AdvancedInit.OverrunDisable = UART_ADVFEATURE_OVERRUN_DISABLE;
  huart1.AdvancedInit.DMADisableonRxError = UART_ADVFEATURE_DMA_DISABLEONRXERROR;
  if (HAL_UART_Init(&huart1) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

}
使用CUBE配置的,无法实现数据发送,可以接收数据,查询if ((USART1->ISR & UART_FLAG_TC)== 0)数据一直不成立
收藏 评论4 发布时间:2018-5-18 09:59

举报

4个回答
andey 回答时间:2018-5-18 11:19:48
提示: 作者被禁止或删除 内容自动屏蔽
wenyangzeng 回答时间:2018-5-18 11:26:45
你应该不断执行:
HAL_UART_Receive(&huart1, (uint8_t *)RX_BUF,1);

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

安静ing 回答时间:2018-5-18 11:29:06
    /* While the UART in reception process, user can transmit data through
     "aTxBuffer" buffer */
  if(HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)aTxMessage, 1)!= HAL_OK)
  {
        while(1) {};
  }
  /* Any data received will be stored "aRxBuffer" buffer : the number max of
     data received is 10 */
  if(HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, 1) != HAL_OK)
  {
        while(1) {};
  }

HAL_UART_Transmit直接就能发送了

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

每天几刀 回答时间:2018-5-18 11:40:27
问题解决了,是管脚没有重映射

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2 原来如此,结贴奖励

查看全部评分

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