完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
断断续续学了几周Stm32后,突然想实现上位机和下位机的通信,恰好自己学过一点python,便想通过python实现通信。
在网上看见python库pyserial可以实现此功能,便去官网找了一下 首先在windows的CMD命令管理器中安装pyserial,直接在CMD中键入如下字符 pip install pyserial 再将Stm32用USB连接到电脑,打开设备管理器显示端口为COM14,然后在python中写下 import serial #连接串口 serial = serial.Serial(‘COM14’,115200,timeout=2) #连接COM14,波特率位115200 if serial.isOpen(): print (‘串口已打开’) else: print (‘串口未打开’) #关闭串口 serial.close() if serial.isOpen(): print (‘串口未关闭’) else: print (‘串口已关闭’) 运行后出现下图,记住在代码要在最后要用 serial.close() 函数去关闭串口,否则下次会打不开串口,会报错。 之后我们在Stm32的代码中写入如下示例代码,模板来自正点原子的示例代码: while(1) { if (USART_RX_STA&0x8000) { len = USART_RX_STA&0x3FFF; for (t=0;t《len;t++) { USART_SendData(USART1,USART_RX_BUF[t]); while (USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); } USART_RX_STA=0; } else { times++; if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行。 delay_ms(10); } } 该32的代码实现的功能为USART接受数据并返还给发送数据方。 在python编译器中写下数据接收与发送的完整代码: import serial #连接串口 serial = serial.Serial(‘COM14’,115200,timeout=2) if serial.isOpen(): print (‘串口已打开’) data = b‘Bekingrn’ #发送的数据 serial.write(data) #串口写数据 print (‘You Send Data:’,data) while True: data = serial.read(20) #串口读20位数据 if data != b‘’: break print (‘receive data is :’,data) else: print (‘串口未打开’) #关闭串口 serial.close() if serial.isOpen(): print (‘串口未关闭’) else: print (‘串口已关闭’) 运行结果为下图,发送的数据为 b‘Bekingrn’ 接收数据为 b‘Beking’ 。( 在正点原子的数据接受数据中要有rn字符,否则会接收不到(可以在代码中更改)) 如此就可以实现python与Stm32的简单数据接发,要是想实现更为复杂,更为实用的上位机与下位机通信,可以参考文首给出的pyserial文档链接。 若觉文章有助于你,可以在下面留言点赞哦 (《_》)! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1936浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
729浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
569浏览 3评论
594浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
552浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:55 , Processed in 0.923470 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号