#stm32 #freertos #stm32cubemx
#stm32 #freertos #stm32cubemx
Вопрос:
Я новичок в STM32 и CubeMX. Мне нужно создать 3 интерфейса UART и 2 интерфейса I2C в STM32F103C8T6. Я пытался, но есть общий порт как для связи i2c, так и для uart, и он позволяет мне создавать только (2 uart и 2 i2c) или (3 uart и 1 i2c), и я не смог создать то, что мне нужно. как я могу установить 3 интерфейса UART и 2 интерфейса I2C одновременно в STM32F103C8T6?
Заранее спасибо…
Комментарии:
1. В чем причина использования двух интерфейсов I2C? I2C — это шина. Таким образом, одна шина может подключать множество устройств.
2. @Codo как войти, поскольку они оба являются мастерами I2C и конфликта адресов нет.
3. И если вам не нужно использовать обе шины одновременно.
Ответ №1:
Вы не можете. Существует неразрешимый конфликт контактов.
Периферийное устройство I2C2 должно использовать контакты PB10 и PB11 для SDA и SCL — переназначений для этого периферийного устройства нет.
Периферийное устройство USART3 использует эти контакты для передачи и передачи данных. На деталях STM32F1 с большим количеством контактов его можно переназначить на контакты PC10 / PC11 или PD8 / PD9; однако STM32F103C8 не имеет этих контактов.
На STM32F103 есть только два периферийных устройства I2C и три периферийных устройства USART, поэтому альтернативных периферийных устройств I2C или USART нет.
Комментарии:
1. Может быть, вы могли бы использовать решение 2 uart / 2 i2c и создать недостающий UART с помощью программного обеспечения. Как сказал duskwuff, чисто аппаратное решение невозможно.
2. @theSealion реализовать мастер I2C в программном обеспечении было бы проще, поскольку существуют только минимальные требования к задержке.
3. @berendi я бы сказал, что это зависит от его требований. Так что, может быть, вы правы или, может быть, я 🙂
Ответ №2:
используйте аппаратный I2C и как можно больше аппаратных интерфейсов UART. Для дополнительных напишите программную реализацию. У вас есть пример здесь: https://www.st.com/resource/en/application_note/dm00110292.pdf или возьмите stm32F103 с большим количеством контактов