“MicroMV 串口通信”的版本间的差异
第79行: | 第79行: | ||
</source> | </source> | ||
[[File:microMVuart2.png||600px|center]] | [[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年5月15日 (二) 04:10的版本
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)