fix (not tested)

This commit is contained in:
ackimixs
2025-12-20 21:45:57 +01:00
parent 455514b11c
commit 4d01405ad9
3 changed files with 34 additions and 5 deletions

View File

@@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="85726625939271877" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-161583691639640240" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="85726625939271877" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-161583691639640240" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

View File

@@ -51,10 +51,10 @@ void PCA9685_SetPWMFrequency(uint8_t Address, uint16_t frequency)
if(frequency >= 1526) prescale = 0x03;
else if(frequency <= 24) prescale = 0xFF;
// internal 25 MHz oscillator as in the datasheet page no 1/52
else prescale = 25000000 / (4096 * frequency);
else prescale = (uint8_t)(25000000 / (4096 * frequency)) - 1;
// prescale changes 3 to 255 for 1526Hz to 24Hz as in the datasheet page no 1/52
PCA9685_SetBit(Address, PCA9685_MODE1, PCA9685_MODE1_SLEEP_BIT, 1);
HAL_I2C_Mem_Write(&hi2c1, Address, PCA9685_PRE_SCALE, 1, &prescale, 1, 10);
HAL_I2C_Mem_Write(&hi2c1, Address << 1, PCA9685_PRE_SCALE, 1, &prescale, 1, 10);
PCA9685_SetBit(Address, PCA9685_MODE1, PCA9685_MODE1_SLEEP_BIT, 0);
PCA9685_SetBit(Address, PCA9685_MODE1, PCA9685_MODE1_RESTART_BIT, 1);
}

View File

@@ -7,6 +7,7 @@
#define USB_RX_BUFFER_SIZE 256
static char usb_rx_buffer[USB_RX_BUFFER_SIZE];
static uint16_t usb_rx_len = 0;
// ==================== Événements en attente d'ACK ====================
@@ -283,7 +284,7 @@ void USBProtocol_ProcessCommand(char *cmd) {
}
}
void USBProtocol_Receive(uint8_t* Buf, uint32_t Len) {
/*void USBProtocol_Receive(uint8_t* Buf, uint32_t Len) {
if (Len >= USB_RX_BUFFER_SIZE) return;
memcpy(usb_rx_buffer, Buf, Len);
usb_rx_buffer[Len] = '\0';
@@ -293,4 +294,32 @@ void USBProtocol_Receive(uint8_t* Buf, uint32_t Len) {
USBProtocol_ProcessCommand(line);
line = strtok(NULL, "\n");
}
}*/
void USBProtocol_Receive(uint8_t* Buf, uint32_t Len)
{
if (Len == 0) return;
/* overflow protection */
if (usb_rx_len + Len >= USB_RX_BUFFER_SIZE) {
usb_rx_len = 0; // drop frame safely
return;
}
memcpy(&usb_rx_buffer[usb_rx_len], Buf, Len);
usb_rx_len += Len;
usb_rx_buffer[usb_rx_len] = '\0';
char *start = usb_rx_buffer;
char *nl;
while ((nl = strchr(start, '\n')) != NULL) {
*nl = '\0';
USBProtocol_ProcessCommand(start);
start = nl + 1;
}
/* keep remaining partial command */
usb_rx_len = strlen(start);
memmove(usb_rx_buffer, start, usb_rx_len);
}