打印
[STM32F0]

stm32f051串口问题

[复制链接]
1118|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
3goodboy|  楼主 | 2015-10-13 11:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 3goodboy 于 2015-10-13 21:24 编辑

使用stm32f051串口发送数据给电脑,一直接收到DB,而不是我设定的值
麻烦各位帮我分析下是什么问题,库是HAL库
蓝色的是我写的关于串口的代码,褐色是用stm32cubemx生成的,绿色是无关的代码

找到问题了,答案在6楼。感谢大家的回复
代码如下:
#include "stm32f0xx_hal.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"

#define TxBUFFERSIZE 1
   uint8_t Pwm =12;
void SystemClock_Config(void);
int main(void)
{

/* USER CODE BEGIN 1 */

uint8_t TxBuffer=Pwm;
  /* USER CODE END 1 */


  /* MCU Configuration----------------------------------------------------------*/


  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM1_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
        HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
        HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
        HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_3);
  /* USER CODE END 2 */


  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
while (1)
  {
  /* USER CODE END WHILE */
    HAL_UART_Transmit(&huart1,(uint8_t *)Pwm,TxBUFFERSIZE,5000);
    HAL_Delay(500);
  }
/* USER CODE END 3 */

}


沙发
xzezhen| | 2015-10-13 11:09 | 只看该作者
把这个函数的内容贴出来:MX_USART1_UART_Init();

使用特权

评论回复
板凳
3goodboy|  楼主 | 2015-10-13 11:11 | 只看该作者
xzezhen 发表于 2015-10-13 11:09
把这个函数的内容贴出来:MX_USART1_UART_Init();

void MX_USART1_UART_Init(void)
{

  huart1.Instance = USART1;
  huart1.Init.BaudRate = 115200;
  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_ONEBIT_SAMPLING_DISABLED ;
  huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  HAL_UART_Init(&huart1);

}

使用特权

评论回复
地板
xzezhen| | 2015-10-13 11:16 | 只看该作者
电脑的串口助手设置成这样试一试:
数据位:7
停止位:1
校验位:None
流控制:None

使用特权

评论回复
5
3goodboy|  楼主 | 2015-10-13 11:23 | 只看该作者
xzezhen 发表于 2015-10-13 11:16
电脑的串口助手设置成这样试一试:
数据位:7
停止位:1

用的是stc的串口助手


使用特权

评论回复
6
airwill| | 2015-10-13 18:17 | 只看该作者
HAL_UART_Transmit(&huart1,(uint8_t *)Pwm,TxBUFFERSIZE,5000);

这里弄错了, 按照楼主的意思. 应该写成
HAL_UART_Transmit(&huart1,&Pwm,TxBUFFERSIZE,5000);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

12

帖子

0

粉丝