Skip to content

Commit 7217137

Browse files
Merge pull request #89 from martinayotte/master
STM32F4 pull request from @ martinayotte to Fix HardwareSerial::begin by doing gpio_set_af_mode AF8 when devices are UART4 or UART5
2 parents cd9e17d + 09fbe05 commit 7217137

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

STM32F4/cores/maple/libmaple/HardwareSerial.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,14 @@ void HardwareSerial::begin(uint32 baud) {
9494
const stm32_pin_info *rxi = &PIN_MAP[rx_pin];
9595
#ifdef STM32F2
9696
// int af = 7<<8;
97-
gpio_set_af_mode(txi->gpio_device, txi->gpio_bit, 7);
98-
gpio_set_af_mode(rxi->gpio_device, rxi->gpio_bit, 7);
97+
if (usart_device == UART4 || usart_device == UART5) {
98+
gpio_set_af_mode(txi->gpio_device, txi->gpio_bit, 8);
99+
gpio_set_af_mode(rxi->gpio_device, rxi->gpio_bit, 8);
100+
}
101+
else {
102+
gpio_set_af_mode(txi->gpio_device, txi->gpio_bit, 7);
103+
gpio_set_af_mode(rxi->gpio_device, rxi->gpio_bit, 7);
104+
}
99105
gpio_set_mode(txi->gpio_device, txi->gpio_bit, (gpio_pin_mode)(GPIO_AF_OUTPUT_PP | GPIO_PUPD_INPUT_PU | 0x700));
100106
gpio_set_mode(rxi->gpio_device, rxi->gpio_bit, (gpio_pin_mode)(GPIO_MODE_AF | GPIO_PUPD_INPUT_PU | 0x700));
101107
//gpio_set_mode(txi->gpio_device, txi->gpio_bit, (gpio_pin_mode)(GPIO_PUPD_INPUT_PU));

STM32F4/libraries/arduino_uip/utility/Enc28J60Network.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,13 @@ void Enc28J60Network::init(uint8_t* macaddr)
7474
#ifdef ENC28J60DEBUG
7575
Serial.println("ENC28J60::initialize / after initSPI()");
7676
Serial.print("ENC28J60::initialize / csPin = ");
77-
Serial.println(ENC28J60_CONTROL_CS);
77+
Serial.println(SPI.nssPin());
7878
Serial.print("ENC28J60::initialize / miso = ");
79-
Serial.println(BOARD_SPI1_MISO_PIN);
79+
Serial.println(SPI.misoPin());
8080
Serial.print("ENC28J60::initialize / mosi = ");
81-
Serial.println(BOARD_SPI1_MOSI_PIN);
81+
Serial.println(SPI.mosiPin());
8282
Serial.print("ENC28J60::initialize / sck = ");
83-
Serial.println(BOARD_SPI1_SCK_PIN);
83+
Serial.println(SPI.sckPin());
8484
#endif
8585
selectPin = ENC28J60_CONTROL_CS;
8686
pinMode(selectPin, OUTPUT);

0 commit comments

Comments
 (0)