1.如上图所示点击New Project
2.如上图所示选择自己所开发的新品最后双击芯片型号
3.配置RCC,我的芯片使用的是外部高速晶振。这里如图所选。
4.配置一下串口
5.配置I2C
6.根据自己的硬件选择时钟源和主频
6.①填写项目名②选择项目路径③选择开发环境④获取代码
I2C测试可以通讯
代码如下:
static void MX_I2C1_Init(void)
{/* USER CODE BEGIN I2C1_Init 0 *//* USER CODE END I2C1_Init 0 *//* USER CODE BEGIN I2C1_Init 1 *//* USER CODE END I2C1_Init 1 */hi2c1.Instance = I2C1;hi2c1.Init.ClockSpeed = 400000;hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;hi2c1.Init.OwnAddress1 = 0;hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;hi2c1.Init.OwnAddress2 = 0;hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;if (HAL_I2C_Init(&hi2c1) != HAL_OK){Error_Handler();}/* USER CODE BEGIN I2C1_Init 2 *//* USER CODE END I2C1_Init 2 */}
void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
{GPIO_InitTypeDef GPIO_InitStruct = {0};if(hi2c->Instance==I2C1){/* USER CODE BEGIN I2C1_MspInit 0 *//* USER CODE END I2C1_MspInit 0 */__HAL_RCC_GPIOB_CLK_ENABLE();/**I2C1 GPIO ConfigurationPB6 ------> I2C1_SCLPB7 ------> I2C1_SDA*/GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);/* Peripheral clock enable */__HAL_RCC_I2C1_CLK_ENABLE();/* USER CODE BEGIN I2C1_MspInit 1 *//* USER CODE END I2C1_MspInit 1 */}}
void LPS22HB_init(void)
{uint8_t Ctrl_reg1 = 0x2E;//0001 0000 = 1Hzuint8_t Res_Conf = 1;HAL_I2C_Mem_Write(&hi2c1,0xBA,0x10,I2C_MEMADD_SIZE_8BIT,&Ctrl_reg1,1,0x1000);HAL_I2C_Mem_Write(&hi2c1,0xBA,0x1A,I2C_MEMADD_SIZE_8BIT,&Res_Conf,1,0x1000);
}
逻辑分析仪抓取波形如下