mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-03 06:27:47 +00:00
5c0f0480bc951dcc22d719256087da3da0034330
Fix an error I introduced in porting wifinina to netdev. The driver was starting a client on the socket once, during Connect. The first UDP send on the socket would succeed, any subsequent sends would fail. The fix is to start the client on the socket for each UDP send. I think I see the logic in this design, so the fix makes sense. If the device was sending to many UDP clients, it could use a single socket, but change the dst addr for each send. The pkt data would be queued to hw just once, and then sent from hw to each client dst addr. This would be a real efficient way to multicast to many clients.
TinyGo Drivers
This package provides a collection of 101 different hardware drivers for devices such as sensors and displays that can be used together with TinyGo.
For the complete list, please see: https://tinygo.org/docs/reference/devices/
Installing
go get tinygo.org/x/drivers
How to use
Here is an example in TinyGo that uses the BMP180 digital barometer:
package main
import (
"time"
"machine"
"tinygo.org/x/drivers/bmp180"
)
func main() {
machine.I2C0.Configure(machine.I2CConfig{})
sensor := bmp180.New(machine.I2C0)
sensor.Configure()
connected := sensor.Connected()
if !connected {
println("BMP180 not detected")
return
}
println("BMP180 detected")
for {
temp, _ := sensor.ReadTemperature()
println("Temperature:", float32(temp)/1000, "°C")
pressure, _ := sensor.ReadPressure()
println("Pressure", float32(pressure)/100000, "hPa")
time.Sleep(2 * time.Second)
}
}
Contributing
Your contributions are welcome!
Please take a look at our CONTRIBUTING.md document for details.
License
This project is licensed under the BSD 3-clause license, just like the Go project itself.
Releases
10
Languages
Go
99.1%
Shell
0.7%