Как установить 3 интерфейса UART и 2 интерфейса I2C одновременно в STM32F103C8T6?

#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 с большим количеством контактов