如何用python控制单片机通信_如何实现pc机对单片机的控制

本文介绍了如何通过Python控制单片机进行通信,涉及UART、RS485和以太网模块。建议使用UART-TTL串口线或USB转RS485数据线建立连接,并探讨了MODBUS协议与自定义协议的设计。同时,提供了单片机串口程序的C语言代码示例,并提到上位机软件可以选择Delphi进行开发。
摘要由CSDN通过智能技术生成

个人电脑控制单片机,主要通过以下步骤:

1)建立个人电脑和单片机的通信连接

普通的单片机通常有UART、SPI、IIC、USB等通信模块。

和电脑通信最常用的是UART,可以有两种方式和电脑建立连接(现在的笔记本电脑很少有支持RS232的DB9接口,所以需要使用USB转TTL,或者USB转485的数据线):

从网上购买USB转TTL的串口线:

通过UART-TTL,将单片机的串口TX,RX引出,加限流保护电阻之后,将串口线的地和单片机的地接到一起,将单片机的串口TX接到串口线的RX,将单片机的串口RX接到串口线的TX。

还可以通过RS485总线与电脑连接;

09164014G-0.jpg

仍然从网上购买USB转RS485的数据线:

RX,TX,以及发送/接收使能控制脚如下图连接至485芯片(如MAX485),将单片机的串口转成485总线。

除了串口之外,还可以从网上购买支持UART接口的以太网模块或者wifi模块。

通过以太网模块,或者wifi模块内置的TCP/IP协议栈,采用TCP/IP通信与个人电脑建立连接。

单片机与模块之间的控制(如初始化、建立TCP客户端/服务端,发送/接收TCP/UDP报文等)可以通过标准的AT指令实现。

2)制定协议以及编写软件

如果是通过RS485连接,建议采用MODBUS通信协议。

个人自定义协议,我通常采用如下格式:

1字节帧头,2字节数据长度,1字节命令字,n字节payload,1字节crc8校验

包括单片机软件和上位机软件,

不管是串口/RS485通信,还是TCP/IP通信,都是单片机串口的通信程序。

包括发送和接收程序,一般开辟发送/接收两块缓存,在串口中断接收程序中,将串口接收到的数据放在环行队列,在主程序中根据协议从环行队列中取出数据进行解析,当解析到有效数据之后,再抛给应用层程序进行相关处理(如IO口控制,IO口读取,FLASH读写等)。

当应用层需要发送数据时,请求串口发送,将数据填入发送缓存,之后串口程序串口发送中断程序中将数据逐字节送入串口发送寄存器。

以下是我在产品中实际使用的串口程序。

#include "Uart.h"

#include "IO.h"

#include "crc.h"

#include "Timer.h"

#include "Strs.h"

#include "WiFi.h"

#define P_UA_TX_P GPIOA

#define P_UA_TX_V 9

#define P_UA_RX_P GPIOA

#define P_UA_RX_V 10

#define UART_WIFI ((USART_TypeDef *) USART1_BASE)

STRUARecType g_ua_stRecRegs;

STRUASendType g_ua_stSendRegs;

#define ENABLE_UART_TX() {\

UART_WIFI->CR1 |= USART_CR1_TXEIE;\

}

//禁止发送中断,使能接收

#de

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python在烧录单片机领域有广泛的应用,它使单片机的烧录变得容易,并且提高了烧录的速度和灵活性。由于Python的易用性和灵活性,它成为了单片机烧录领域最受欢迎的工具之一。学习如何使用Python烧录单片机将是一个非常重要的技能。烧录单片机程序的基本概念是将源代码编译为能够在单片机上运行的二进制文件,并将其写入到单片机的非易失性存储器中,从而实现单片机的相应功能。Python作为一种功能强大、易于使用的高级编程语言,为工程师们提供了一种灵活、高效的方式来烧录单片机程序。使用Python烧录单片机程序可以极大地提高开发效率和运行效率,并且适应不同的单片机和硬件环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [chatgpt赋能pythonPython烧录单片机:快速的开发工具](https://blog.csdn.net/u012804784/article/details/131346546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [chatgpt赋能python:烧录单片机程序:Python的力量](https://blog.csdn.net/m0_56069948/article/details/131346547)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值