mirror of
https://github.com/modelec/actionneurs_STM32.git
synced 2026-01-18 16:47:29 +01:00
fix (not tested)
This commit is contained in:
@@ -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 "${INPUTS}"" 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 "${INPUTS}"" 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 "${INPUTS}"" 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 "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user