Guten Morgen Leute!
Ich habe mir das BHI160b Shuttle Board bestellt um die Lagedaten
auszulesen. Den Treiber der von Bosch angeboten wird gibt es
https://github.com/BoschSensortec/BHy1_driver_and_MCU_solution . Ich bin
nun dabei den Treiber auf meinen STM32L053R8 anzupassen. Hierfür gibt es
einen MCU driver Porting guide, der Schritt für Schritt erklärt was
alles angepasst werden muss um den Sensor zu betreiben. Zu beginn habe
ich folgende Zeilen aus dem File bhy_support.c entfernt.
1 | #include "FreeRTOS.h"
|
2 | #include "task.h"
|
3 | extern int8_t sensor_i2c_write(uint8_t addr, uint8_t reg, uint8_t *p_buf, uint16_t size);
|
4 | extern int8_t sensor_i2c_read(uint8_t addr, uint8_t reg, uint8_t *p_buf, uint16_t size);
|
5 | extern void trace_log(const char *fmt, ...);
|
Diese sind ATMEL spezifische Befehle die für mit meinem µC nicht
kompatibel sind. Desweiteren wird im porting guide noch erwähnt im File
bhy_support.h die Zeile
zu entfernen da diese library auch ATMEL spezifisch ist.
Nach einem Rebuild werden folgende Fehler angezeigt:
1 | ..\Drivers\BHI160b_driver\inc\bhy_uc_driver_types.h(252): error: #20: identifier "uint8_t" is undefined uint8_t sensor_id;
|
Diese Fehlermeldung wird im porting guide erwähnt und gibt als Lösung an
im File bhy.h die folgenden fixed-width types zu definieren:
1 | s8, s16, s32, u8, u16, u32
|
Ich weiß nur nicht wie ich die nun definieren soll, in diesem File gibt
es schon definierte Datentypen nur weiß ich nicht mit welchem #define
die richtigen aktivieren kann...
Zusätzlich kommt noch die I2C Verbindung, die ich auf dem STM32 mit der
HAL library umsetzten möchte. Verlangt wird das im File bhy_support.c
die Funktionen sensor_i2c_write() und sensor_i2c_read() erstellt werden.
Der porting guide empfiehlt, dass die Reihenfolge der Parameter und der
Rückgabewert die gleichen sind, was mir auch als sinnvoll erscheint.
Gibt es da schon eine fertige Funktion in HAL die mir diese zwei
Funktionen ausführt? Wie gehe ich am besten Schritt für Schritt vor um
diese Verbindung zum Sensor herzustellen?
Vielen dank schon im vorraus für eure Ratschläge!