mirror of
https://github.com/peng-zhihui/ElectronBot.git
synced 2026-10-29 11:36:41 +08:00
after set i2c id can be effective immediately
This commit is contained in:
@@ -38,6 +38,7 @@ extern uint8_t i2cDataTx[8];
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
void MY_I2C1_Init(uint32_t _id);
|
||||
void set_id(uint8_t _id);
|
||||
void I2C_SlaveDMARxCpltCallback();
|
||||
/* USER CODE END Prototypes */
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ extern "C" {
|
||||
void Error_Handler(void);
|
||||
|
||||
/* USER CODE BEGIN EFP */
|
||||
void TIM14_PeriodElapsedCallback();
|
||||
|
||||
/* USER CODE END EFP */
|
||||
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
|
||||
@@ -39,7 +39,7 @@ void MX_TIM3_Init(void);
|
||||
void MX_TIM14_Init(void);
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
|
||||
void TIM14_PeriodElapsedCallback();
|
||||
/* USER CODE END Prototypes */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -45,7 +45,7 @@ void MX_GPIO_Init(void)
|
||||
|
||||
/* GPIO Ports Clock Enable */
|
||||
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOF);
|
||||
//LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);
|
||||
|
||||
|
||||
/**/
|
||||
LL_GPIO_ResetOutputPin(GPIOF, LL_GPIO_PIN_0);
|
||||
@@ -69,6 +69,15 @@ void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
|
||||
LL_GPIO_Init(GPIOF, &GPIO_InitStruct);
|
||||
|
||||
/*for debug*/
|
||||
// LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);
|
||||
// GPIO_InitStruct.Pin = LL_GPIO_PIN_1;
|
||||
// GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
|
||||
// GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
|
||||
// GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
|
||||
// GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
|
||||
// LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
@@ -126,12 +126,17 @@ void MY_I2C1_Init(uint32_t _id)
|
||||
/* USER CODE BEGIN I2C1_Init 2 */
|
||||
LL_I2C_Enable(I2C1);
|
||||
LL_I2C_EnableIT_ADDR(I2C1);
|
||||
|
||||
LL_I2C_AcknowledgeNextData(I2C1,LL_I2C_ACK);
|
||||
LL_I2C_EnableDMAReq_RX(I2C1);
|
||||
LL_I2C_EnableDMAReq_TX(I2C1);
|
||||
/* USER CODE END I2C1_Init 2 */
|
||||
}
|
||||
|
||||
void set_id(uint8_t _id)
|
||||
{
|
||||
LL_I2C_DisableOwnAddress1(I2C1);
|
||||
LL_I2C_SetOwnAddress1(I2C1,_id,LL_I2C_OWNADDRESS1_7BIT);
|
||||
LL_I2C_EnableOwnAddress1(I2C1);
|
||||
}
|
||||
/* USER CODE END 1 */
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
||||
@@ -133,6 +133,7 @@ void I2C_SlaveDMARxCpltCallback()
|
||||
{
|
||||
boardConfig.nodeId = i2cDataRx[1];
|
||||
boardConfig.configStatus = CONFIG_COMMIT;
|
||||
set_id(boardConfig.nodeId);
|
||||
auto* b = (unsigned char*) &(motor.angle);
|
||||
for (int i = 0; i < 4; i++)
|
||||
i2cDataTx[i + 1] = *(b + i);
|
||||
|
||||
Reference in New Issue
Block a user