start implementing vcp wrapper functions

Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
2020-04-23 12:49:58 +08:00
parent e3bacc1e32
commit 05230aa6c4
4 changed files with 59 additions and 20 deletions

View File

@ -6,21 +6,24 @@
#define FT_LIST_MASK (FT_LIST_NUMBER_ONLY|FT_LIST_BY_INDEX|FT_LIST_ALL)
*/
use ftdi_vcp_rs::VCP;
use ftdi_vcp_rs::{VCP, BitMode};
use std::thread::sleep;
use std::time::Duration;
fn main() {
fn main() -> Result<(), ftdi_vcp_rs::Error> {
let mut vcp = VCP::new_from_name("iCEBreaker V1.0e A").expect("couldn't open vcp");
println!("Opened VCP: {:?}", vcp);
vcp.set_bit_mode(0x80).expect("couldn't set bit mode");
vcp.reset()?;
vcp.set_bitmode(0x80, BitMode::SyncBitbang)?;
for i in 0..10 {
if i & 1 != 0 {
vcp.write(&[0x80]).expect("couldn't set all 1");
vcp.write(&[0x80])?;
} else {
vcp.write(&[0x00]).expect("couldn't set all 1");
vcp.write(&[0x00])?;
}
sleep(Duration::from_millis(500));
}
println!("VCP COM{}:", vcp.com_port().expect("couldn't get com port"));
println!("VCP COM{}:", vcp.com_port()?);
Ok(())
}