esp-rs / esp32-hal

A hardware abstraction layer for the esp32 written in Rust.
Apache License 2.0
193 stars 28 forks source link

Additional GPIO functionality #5

Closed fmckeogh closed 4 years ago

fmckeogh commented 4 years ago
fmckeogh commented 4 years ago

All fixed! :)

MabezDev commented 4 years ago

Thanks! I tested some input pins last night on a real board and it worked great! Once I test some pins in the second bank (32+) I'll merge this. Alternate function looks good too, but I guess we don't really have a way of testing these until we write some drivers for other peripherals.

fmckeogh commented 4 years ago

Yeah, I didn't have a great way of testing pull up/down vs floating other than setting the LED to the state read from the pin and looking for an immediate change in LED state vs a slow fade, but it does appear to be correct.

I've started on I2C, and wasn't someone else working on serial? So shouldn't be long! :)

arjanmels commented 4 years ago

@chocol4te There are still a couple of features which I think will be needed for the library to become usable for all situations:

Is this something you are working on/will be working on? (can be next pull request. I think the current one is already very nice!)

fmckeogh commented 4 years ago

Sorry, I've been pretty busy with university work, I meant to add both of those features to a pull request implementing I2C but haven't had time recently :(

arjanmels commented 4 years ago

@chocol4te No worries, it is just a hobby, other things have prio. For the moment I work around it by just using UART0 with the default pin assignment and will await your updates in due time.

MabezDev commented 4 years ago

Sorry for taking so long to get to this @chocol4te!

This looks great, I've tested most pins from each bank in various number of scenarios and all seems to be working great.

One thing I have noticed is that pullups/pulldowns are not available for pins 34-39, so calling into_x_pullup doesn't have the intended effect. I will still merge this but hopefully we can find away to make it such that those functions are not on those pins in the near future!