“MicroMV 串口通信”的版本间的差异
502748957@qq.com(讨论 | 贡献) |
|||
(未显示1个用户的6个中间版本) | |||
第15行: | 第15行: | ||
*'''初始化UART对象''' | *'''初始化UART对象''' | ||
:<source lang="py"> | :<source lang="py"> | ||
− | uart = UART( | + | uart = UART(4, 115200) |
</source> | </source> | ||
第48行: | 第48行: | ||
:<source lang="py"> | :<source lang="py"> | ||
# UART Control 串口通信 | # UART Control 串口通信 | ||
− | |||
import time | import time | ||
from pyb import UART | from pyb import UART | ||
− | + | uart = UART(4, 115200) | |
− | uart = UART( | ||
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters | uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters | ||
while(True): | while(True): | ||
第58行: | 第56行: | ||
print("Hello World") | print("Hello World") | ||
# 休眠1s | # 休眠1s | ||
+ | time.sleep(1000) | ||
+ | </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) | time.sleep(1000) | ||
</source> | </source> | ||
− | [[ | + | [[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上的串口的显示效果
- 向串口接收数据
# 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)
- 数据双向发送与接收
# 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)