MaixII-Dock(v831)学习笔记——UART

这篇具有很好参考价值的文章主要介绍了MaixII-Dock(v831)学习笔记——UART。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

  UART通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称作UART,俗称串口)是一种串行异步收发协议,下到8位单片机,上到64位Soc,一般都会提供UART接口,应用范围广。

MaixII-Dock使用UART

  在Linux系统中,UART在用户空间会生成名为/dev/ttyS*的设备(ttyS名称是驱动给出的,可能因驱动而异),应用程序通过读写设备就可以进行UART通信。Linux内核实现了tty层和serial core,serial core会调用tty层的接口,注册tty driver,同时提供了底层uart的抽象
MaixII-Dock(v831)学习笔记——UART
  由引脚功能图可以看出,MaixII-Dock有两个UART可以使用,但因为不要使用 UART-0 通道来进行串口通讯,这个串口是直连芯片,会有一些其他数据吞吐,所以只有UART-1可以使用。

python串口模块

  serial是python的标准库,常用方法:

ser = serial.Serial(“/dev/ttyS1”,115200) # 实例化串口,设置波特率
ser.write(“hello") # 输入需要通讯的内容
data = ser.read()#可以读一个字符
data = ser.read(20)# 是读20个字符
data = ser.readline() #是读一行,以/n结束,要是没有/n就一直读,阻塞。如果timeout设置 则不堵塞。
ser.setDTR(True)#设置引脚状态
ser.setDTR(False)#设置引脚状态
ser.setRTS(True)#设置引脚状态
ser.setRTS(False)#设置引脚状态
ser.close() #关闭串口
ser.open() #打开串口

MaixII-Dock串口收发

  准备USB转TTL板一块,将ch340的tx接PG7,ch340的rx接PG6,还要接一根地线,使ch340与MaixII-Dock工地。
  打开串口助手,运行下列代码,即可进行串口通讯:

import serial
ser = serial.Serial("/dev/ttyS1",115200)    # 连接串口
print('serial test start ...')              
ser.write(b"Hello Wrold !!!\n")             # 输入需要通讯的内容
while True:
    ser.setDTR(True)                        
    ser.setRTS(True)
    tmp = ser.readline()  #接收到的内容
    if tmp:
    	print(tmp)
    	ser.write(b"Get datas successful")

MaixII-Dock(v831)学习笔记——UART

MaixII-Dock与stm32串口通讯

  MaixII-Dock与stm32串口通讯和单片机之间的串口通讯差不多,tx接rx,rx接tx,然后共地即可,这里我用的是stm32rc6,stm32的代码可以之间用正点原子的例程。
MaixII-Dock(v831)学习笔记——UART
MaixII-Dock上电后运行下列代码:

import serial
ser = serial.Serial("/dev/ttyS1",115200)    # 连接串口
print('serial test start ...')
ser.write(b"1")             # 输入需要通讯的内容
while True:
    ser.setDTR(True)
    ser.setRTS(True)
    tmp = ser.readline()  #接收到的内容
    if tmp:
        print(tmp)
        ser.write(b"Get datas successful\n")

MaixII-Dock上电后运行代码后会像stm32发送b"1",也就是0x31,当stm32收到后LED1亮。stm32的代码用printf()函数就可以发送信息,不过要注意结尾加上\n,要是没有\n就一直读,阻塞。stm32端部分代码:文章来源地址https://www.toymoban.com/news/detail-424626.html

while(1)
	{		
		t=KEY_Scan(0);		//得到键值
		switch(t)
		{				 
			case KEY0_PRES:
				LED0=!LED0;
			printf("0x31\n");
				break;
			case KEY1_PRES:;
				break;
			case WKUP_PRES:				
				break;
			default:
				delay_ms(10);
		}
		if(USART_RX_BUF[0]==0x31)
		{
		LED1=0;
		}
		else if(USART_RX_BUF[0]==0x32)
		{
			LED1=1;
		}
		if(USART_RX_STA&0x8000)
		{					   
			len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
			for(t=0;t<len;t++)
			{
				USART1->DR=USART_RX_BUF[t];
				while((USART1->SR&0X40)==0);//等待发送结束
			}
			USART_RX_STA=0;
		}else
		{
			times++;
			delay_ms(10);   
		}
	}

到了这里,关于MaixII-Dock(v831)学习笔记——UART的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为HCIP831题库(部分)

    1、 IS-IS协议视图下 ipv6 enable topology ipv6 的含义是? (单选题) A:SPF计算在IPv4、IPv6的拓扑中单独进行 B:不具备任何含义 C:不支持IPv6的SPF计算 D:IPv4、IPv6采用同一个拓扑讲行SPF计算 答案:A 解析:该命令指定拓扑类型为IPv6拓扑,即在IPv6拓扑上使能IS-IS进程的IPv6。网络中的链路

    2024年02月09日
    浏览(45)
  • HCIP datacom 821、831题库

    (全部黄色底纹为错误题;绿色、全部绿色字体为正确题) 关于OSPF缺省路由描述 错误 的是: 由于 OSPF 路由的分级管理, Type5/7 缺省路由的优先级高于 Type3 路由 ; OSPF 的 Router LSA 中,如果其 Link Type 为 1 ,则该 LSA 描述的是从本路由器到邻居路由器之间点到点的链路,此时

    2024年02月09日
    浏览(48)
  • kmp算法模板(acwing831)

    #define _CRT_SECURE_NO_WARNINGS  #includeiostream #includecstdio #includecstdlib #includestring #includecstring #includecmath #includectime #includealgorithm #includeutility #includestack #includequeue #includevector #includeset #includemath.h #includemap using namespace std; #define LL long long  using ull = unsigned long long; const LL N = 1e6 + 5, mod =

    2024年02月07日
    浏览(32)
  • HCIP-datacom-831题库

    考取HCIP数通证书可以胜任中到大型企业网络工程师岗位,需要掌握中到大型网络的特点和通用技术,具备使用华为数通设备进行中到大型企业网络的规划设计、部署运维、故障定位的能力,并能针对网络应用设计出较高安全性、可用性和可靠性的解决方案。 HCIP是华为认证体

    2024年02月14日
    浏览(36)
  • H12-831最新解析25题

    401、(判断)isis silent命令用来配置IS-IS接口为抑制状态,即抑制该接口接收和发送IS-IS报文,但此接口所在网段的路由可以被发布出去。 A.TRUE   B.FALSE 答案:A 解析:isis silent命令为设置静默接口,配置了之后该接口不发生isis报文,不使用该接口建立isis邻居关系,但是该接口的

    2024年02月06日
    浏览(24)
  • H12-831题库(有详细的解析)

    1.(单选)某工程师利用2台路由器进行IPv6业务测试,通过运行BGP4+模拟总部与分支的互联互通。如图所示,某工程师抓包查看R1发出的update报文。关于该报文信息的描述,以下哪个说法是正确的? A.该报文描述的路由的下一跳地址为:2001:db8::2345:1::1 B.该报文描述的是当前撤销的IPv6路

    2024年02月08日
    浏览(36)
  • Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the dock

    记录一下初使用docker时,报错 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the dock er daemon running? 的解决思路。 服务器使用阿里云的,经常重启,一直没有管理之前安装的docker,现在想学习spark,遍跟着官网开始下载spark,执行了 docker pull apachecn0/spark-doc-zh 就报了下面

    2024年02月16日
    浏览(58)
  • 使用docker安装Jenkins时无法pull问题Trying to pull repository docker.io/jenkins/jenkins ...manifest for dock..

    博客:docker 安装jenkins 第一步:安装Jenkins的镜像 报错 解决方案 解决方案博客:解决docker pull java或者xxx镜像报错的问题 ,结合:linux 操作 json文件 先说原理和操作: 原理就是在我们pull镜像时,用的时原有的镜像(属于国外),我们修改为国内的镜像pull,会快很多也不容易

    2024年02月08日
    浏览(75)
  • V831人脸识别(具有掉电记忆功能,用来做智能家居绝佳)

    1.代码基于spieed家开源模型文件建立,模型特点: 无需预训练指定人脸模型,具有自学习指定人脸功能(重点) , 首先进入模型训练官网,搜索人脸识别模型,选择下面这个人脸识别模型文件: 2.下载完后的文件 3.修改main.py代码为以下代码 【小小怪驾到】第一支视频求三连!

    2024年04月08日
    浏览(44)
  • 华为数通方向HCIP-DataCom H12-831题库(判断题:81-100)

    基本QinQ能根据业务种类选择外层Tag封装的方式 正确 错误 答案: 错误 解析: 基本QinQ是基于端口方式实现的,不能根据业务种类选择外层TAG封装的方式。 display interface GE0/0/0-次,发现Total Error计数(该接口物理层的错误报文总数目)不是此时可以断定当前时故降仍未消失 正确 错

    2024年01月23日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包