Forum: Mikrocontroller und Digitale Elektronik STM32 (CubeMX) Pi Kommunikation


von LT150 (Gast)


Lesenswert?

Hallo,

ich möchte eine Kommunikation zwischen einem Raspberry Pi und einem 
STM32F303 herstellen.
Der Pi soll 1-2 Parameter im STM32 C-Code verändern können.

Ich dachte dabei an I2C.
Der Pi ist dabei der Master. Der STM32 der Slave.

STM32 Seite:
1
uint8_t aRxBuffer[2];
2
3
  while (1)
4
  {
5
       HAL_I2C_Slave_Receive(&hi2c1, aRxBuffer, 2, 100);
6
  }
7
8
9
static void MX_I2C1_Init(void)
10
{
11
12
  hi2c1.Instance = I2C1;
13
  hi2c1.Init.Timing = 0x2000090E;
14
  hi2c1.Init.OwnAddress1 = 20;
15
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
16
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
17
  hi2c1.Init.OwnAddress2 = 0;
18
  hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
19
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
20
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
21
  if (HAL_I2C_Init(&hi2c1) != HAL_OK)
22
  {
23
    _Error_Handler(__FILE__, __LINE__);
24
  }
25
26
    /**Configure Analogue filter 
27
    */
28
  if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
29
  {
30
    _Error_Handler(__FILE__, __LINE__);
31
  }
32
33
    /**Configure Digital filter 
34
    */
35
  if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
36
  {
37
    _Error_Handler(__FILE__, __LINE__);
38
  }
39
40
}


Am Pi möchte ich gerne Node-Red "node-red-contrib-i2c" verwenden. Den 
I2C-Out Node habe ich entsprechend konfiguiert (Ip etc.).


Leider kann ich keine Verbindung herstellen bzw. den Buffer "aRxBuffer" 
beschreiben.

Mit "sudo i2cdetect -y 1" findet der Pi keine Slave Adresse? An der 
Verkabelung kann es eig. nicht liegen.

Kann mir bitte jemand weiterhelfen. Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.