使用STM32cube遇到的一些问题

  1、     cube在生成代码的时候,会出现死机的现象。

解:   把keil关闭就不会出现死机的现象。

 

2、开始默认的是内部晶振驱动芯片的运行,怎么打开外部晶振的驱动?

 

解:   在Pinout任务栏里  的RCC选项设置。

 

3、当有变态问题出现的时候,应该考虑哪些方面?

 

解:  变态的问题多半是优化引起的,优化级别尽量设置为level0(程序不做任何的优化)。

 

设置I2C时遇到的一些问题:

void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
{

  GPIO_InitTypeDef GPIO_InitStruct;
  if(hi2c->Instance==I2C2)
  {
  /* USER CODE BEGIN I2C2_MspInit 0 */

  /* USER CODE END I2C2_MspInit 0 */
 
    /**I2C2 GPIO Configuration   
    PB10     ------> I2C2_SCL
    PB3     ------> I2C2_SDA
    */
    GPIO_InitStruct.Pin = GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;    //这个选项只能为低,为其他的模式会出现错误。
    GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_3;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF9_I2C2;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    /* Peripheral clock enable */
    __HAL_RCC_I2C2_CLK_ENABLE();
  /* USER CODE BEGIN I2C2_MspInit 1 */

  /* USER CODE END I2C2_MspInit 1 */
  }

}

 

你可能感兴趣的:(stm32)