“MicroMV 串口通信”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“<p style="font-size:135%">'''MicroMV上的串口通讯'''</p> *'''UART对象''' :<source lang="py"> ''' 初始化一个串口对象 uart_idx , 串口ID, 我们…”)
 
 
(未显示1个用户的8个中间版本)
第15行: 第15行:
 
*'''初始化UART对象'''
 
*'''初始化UART对象'''
 
:<source lang="py">
 
:<source lang="py">
 +
uart = UART(4, 115200)
 +
</source>
 +
 +
*'''UART 函数操作'''
 +
:<source lang="py">
 +
uart.read(10)        # read 10 characters, returns a bytes object
 +
                    # 读入10个字符, 返回一个比特对象
 +
uart.read()            # read all available characters
 +
                    # 读取所有的有效字符
 +
uart.readline()        # read a line
 +
                    # 读入一行
 +
uart.readinto(buf)  # read and store into the given buffer
 +
                    # 读入并且保存在缓存中
 +
uart.write('abc')    # write the 3 characters
 +
                    # 向串口写入3个字符abc
 +
</source>
 +
 +
*'''单个字符的读取与写入'''
 +
:<source lang="py">
 +
uart.readchar()    # read 1 character and returns it as an integer
 +
                    # 读入一个字符
 +
uart.writechar(42)  # write 1 character
 +
                    # 写入ASCALL码为42的字符
 +
</source>
  
uart = UART(3, 115200)
+
*'''判断串口是否有数据'''
 +
:<source lang="py">
 +
uart.any()         # returns the number of characters waiting
 +
</source>
  
 +
*'''向串口发送数据的代码'''
 +
:<source lang="py">
 +
# UART Control 串口通信
 +
import time
 +
from pyb import UART
 +
uart = UART(4, 115200)
 +
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
 +
while(True):
 +
    uart.write("Hello World!\r")
 +
    print("Hello World")
 +
    # 休眠1s
 +
    time.sleep(1000)
 
</source>
 
</source>
  
 +
*'''实验效果'''
 +
:TTL 转接到PC上的串口的显示效果
 +
[[File:microMVuart1.png||600px|center]]
 +
 +
*'''向串口接收数据'''
 +
:<source lang="py">
 +
# UART Control 串口通信
 +
import time
 +
from pyb import UART
 +
uart = UART(4, 115200)
 +
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
 +
while(True):
 +
    if uart.any():
 +
        # 判断是否有数据, 有的话就读入
 +
        tmp_data = uart.readline()
 +
        print(tmp_data)
 +
    # 休眠1s
 +
    time.sleep(1000)
 +
</source>
 +
[[File:microMVuart2.png||600px|center]]
 +
 +
*'''数据双向发送与接收'''
 +
:<source lang="py">
 +
# UART Control 串口通信
 +
import time
 +
from pyb import UART
 +
uart = UART(4, 115200)
 +
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
 +
def sending_data():
 +
    global uart
 +
    uart.write("haha\n")
 +
def recive_data():
 +
    global uart
 +
    if uart.any():
 +
        tmp_data = uart.readline()
 +
        uart.write("RECIVED : %s\n"%tmp_data)
 +
        print(tmp_data)
 +
while(True):
 +
    sending_data()
 +
    recive_data()
 +
    time.sleep(1000)
 +
</source>
  
  
[[MicroMV目录|返回MicroMV目录页面]]
+
[[MicroMV 简介|返回MicroMV目录页面]]

2018年12月7日 (五) 03:11的最新版本

MicroMV上的串口通讯

  • UART对象
'''
初始化一个串口对象
uart_idx  , 串口ID, 我们这里只能写1或者3
baud_rate , 波特率 
'''
UART(uart_idx, baud_rate)
  • 初始化UART对象
uart = UART(4, 115200)
  • UART 函数操作
uart.read(10)        # read 10 characters, returns a bytes object
                    # 读入10个字符, 返回一个比特对象
uart.read()            # read all available characters
                    # 读取所有的有效字符
uart.readline()        # read a line
                    # 读入一行
uart.readinto(buf)  # read and store into the given buffer
                    # 读入并且保存在缓存中
uart.write('abc')    # write the 3 characters
                    # 向串口写入3个字符abc
  • 单个字符的读取与写入
uart.readchar()     # read 1 character and returns it as an integer
                    # 读入一个字符
uart.writechar(42)  # write 1 character
                    # 写入ASCALL码为42的字符
  • 判断串口是否有数据
uart.any()          # returns the number of characters waiting
  • 向串口发送数据的代码
# UART Control 串口通信
import time
from pyb import UART
uart = UART(4, 115200)
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
while(True):
    uart.write("Hello World!\r")
    print("Hello World")
    # 休眠1s
    time.sleep(1000)
  • 实验效果
TTL 转接到PC上的串口的显示效果
MicroMVuart1.png
  • 向串口接收数据
# UART Control 串口通信
import time
from pyb import UART
uart = UART(4, 115200)
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
while(True):
    if uart.any():
        # 判断是否有数据, 有的话就读入
        tmp_data = uart.readline()
        print(tmp_data)
    # 休眠1s
    time.sleep(1000)
MicroMVuart2.png
  • 数据双向发送与接收
# UART Control 串口通信
import time
from pyb import UART
uart = UART(4, 115200)
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
def sending_data():
    global uart
    uart.write("haha\n")
def recive_data():
    global uart
    if uart.any():
        tmp_data = uart.readline()
        uart.write("RECIVED : %s\n"%tmp_data)
        print(tmp_data)
while(True):
    sending_data()
    recive_data()
    time.sleep(1000)


返回MicroMV目录页面