目录
树莓派windows iot 开发(一)
树莓派windows iot 开发(二) USB摄像机
树莓派windows iot 开发(三) 闪烁的LED
树莓派windows iot 开发(四) UART接口
树莓派windows iot开发(四)UART接口
UART设备是一种历史悠久的通讯外设。树莓派也支持UART设备,但接口是TTL接口电平,如果你使用的是标准的RS232接口需要使用TTL转RS232串口模块。
设备接口定义:8PIN和10PIN为UART接口。
实验前:将TTL转换板的引脚与设备连接。
使用VS2019打开Samples\ SerialUART\CS\ SerialSample.sln项目。
程序运行后,打开设备可以看到设备连接的信息。从屏幕中可以看到树莓派中只有一个UART设备,在设备的列表中有
"\\?\ACPI#BCM2836#0#{86e0d1e0-8089-11d0-9ce4-08003e301f73}"
字串就是信息。这个和我们看到的COM1这样的名字不一样。
使用串口助手发送“Hello”,下面我们分析一下代码。
") rgba(220, 220, 220, 0.5); left: 0px; top: -15px; display: block;">
这是一段简化的代码。
serialPort = await SerialDevice.FromIdAsync(entry.Id);
其中的参数entry.Id是文本类型的参数,就是在设备列表中出现的字串
"\\?\ACPI#BCM2836#0#{86e0d1e0-8089-11d0-9ce4-08003e301f73}"
如果是已选定的设备直接将字串传给SerialDevice对象。
serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
serialPort.ReadTimeout = TimeSpan.FromMilliseconds(1000);
serialPort.BaudRate = 9600;
serialPort.Parity = SerialParity.None;
serialPort.StopBits = SerialStopBitCount.One;
serialPort.DataBits = 8;
serialPort对象就是UART设备,参数为“9600,N,8,1”
数据的接收。
") rgba(220, 220, 220, 0.5); left: 0px; top: -15px; display: block;">
可以看到Listen中有一个异步死循环。这就是事件的检查函数。但是不用担心这个循环只是把事件挂钩到函数上就会退出来。然后程序就继续了。
发送数据就要简单些了。
") rgba(220, 220, 220, 0.5); left: 0px; top: -15px; display: block;">
从代码中可以看到需要两个步骤,
一、将数据设置到dataWriteObject.WriteString(sendText.Text);
二、启动发送函数,await WriteAsync();
windows iot的系统是事件驱动的多任务系统,设备的驱动中会启动相应的线程。这要比自己写任务的系统简单一些。
此内容由EEWORLD论坛网友bigbat原创,如需转载或用于商业用途需征得作者同意并注明出处