通讯:单片机串口和电脑通讯

目录

1.串口输出数据到电脑

硬件部分

串口输出数据到电脑的软件软件部分:

相关问题:

2.单片机串口--485--485转USB--电脑


串口,芯片,转换器,设备之间的通讯的接线,都是要TX--RX, RX--TX 交叉连接。

单片机串口和电脑不能直接通讯,要经过USB转换,

最直接的方式:

单片机串口引脚---ttl/cmos转USB---电脑USB口

经过485或者232的方式:

单片机开发板(单片机串口引脚 -- 485芯片引脚)485接口  -- 485转USB -- 电脑USB

单片机串口通常要经过max485或者max3232芯片,转换成485或者232信号(应该是这样的信号更不容易受干扰,等等),去和其他设备进行通讯。    485或者232信号在工作的时候直接和其他设备连接即可,在调试或者其他需要和电脑连接的时候,通过485转USB(232转USB)和电脑通讯。

1.串口输出数据到电脑

硬件部分

串口--串口转USB--电脑USB口

单片机串口和转换器接线:

单片机  -- TTL/CMOS转USB

VDD -- VDD

TX -- RX

RX -- TX

GND -- GND

电脑USB接口供电是5V, 转换器有5v和3.3v可选择,根据单片机电源确定。

如果只需要单片机发送数据,只需要连接单片机的TX  GND的和转换器的RX GND即可,只要接收数据,也是两根线就可以。

有时候,JLINK调试器也连接着单片机,转换器的gnd不接线也可以,可以共用jlink的gnd。

单片机有电源时,VDD--VDD接不接都可以。

单片机的gnd和电脑的gnd连接,电脑可以正常接收,断开共地,只有一个TX--RX连接,电脑接受的是乱码

下图:接线正常,接受正常;断开gnd,接受的是乱码;重新连接gnd,接收正常Hello

串口输出数据到电脑的软件软件部分:

串口助手:sscom  (接收printf打印的数据)

调试环境:keil

我使用了microlib+重定向printf,有不使用microlib的方式以后再试了。

keil的target设置:

芯片:stm32c031系列,

库文件是HAL库,标准库的方式没试。

重定向printf的程序,将这一段插入到main.c文件或者建一个新.c文件放置都可以

#include "stdio.h"/*重定向printf函数*/
int fputc(int ch, FILE *f)
{HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1 , 0xffff);return ch;
}

在主循环里加入以下语句即可:

while (1){printf("hello\n");HAL_Delay(delay_time);//避免发送太快,延时一下}

相关问题:

1.死机问题 卡死在这里: 0x0800054A BEAB BKPT 0xAB0

解决方式:勾选微库就行了

2. printf是把输出重定向到串口,由串口把信息输出到电脑,由串口助手显示出来。

还有模拟调试的时候,可以把printf的内容输出到  keil的"debug (printf) viewer" (或者USART #)窗口,没有试过,不知道实际是不是这样。以前试过一次,但是keil没有那个芯片的模拟功能。

//这一段没用到,放这里参考一下#include "stdio.h"//printf的头文件
//#include "usart.h"//我的串口配置在usart.c文件里,包括变量huart1/**********************************************************
本来想使用一下这段适配不同情况,但是没搞好,就不搞了,先放在这里
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#else
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#endif
int fputc(int ch, FILE *f)
{HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1 , 0xffff);return ch;
}
**************************************************************//*重定向printf函数*/
int fputc(int ch, FILE *f)
{HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1 , 0xffff);return ch;
}/************************************************************
不知道怎么用,找资料的时候看到的,先放在这
/*接收数据*/
int GetKey(void)
{uint8_t received_data;// 轮询方式接收数据,超时为 HAL_MAX_DELAY,表示无限等待HAL_UART_Receive(&huart1, &received_data, 1, HAL_MAX_DELAY);return (int)received_data;
}
*****************************************************************/

2.单片机串口--485--485转USB--电脑

单片机 -- 485   接线

USART->CK --  485->RE(头上有横线和485->DE)

USART->TX --  485->DI

USART->RX --  485->RO

MAX485引脚图:

RO:Receiver Output

DI:Driver Input

RE、DE:Receiver Output Enable   Driver Output Enable 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

充电桩现场安装施工流程

摘要:在化石能源日益紧缩的今天,新能源车辆逐渐走进了千家万户,与传统化石能源车辆相比,以电驱动的新能源车辆能源利用率高,缩短了能源传递过程,实现了能源有效利用。根据能量守恒定律可知,任何…

V-Series Avalon-MM DMA Interface for PCIE IP核

目录 1. IP概述 2. Avalon-MM DMA Ports 3. 参数设置 3.1 系统设置 3.2 基址寄存器 (BAR) 设置 3.3 设备识别寄存器 3.4 PCI Express和PCI功能参数 3.4.1 Device Capabilities 3.4.2 Error Reporting 3.4.3 Link Capabilities 3.4.4 MSI and MSI-X Capabilities …

机器发货到菲律宾的完整流程 广东智慧物流

机器发货到菲律宾的完整流程 广东智慧物流 🌟【机器发货到菲律宾完全攻略】🌟 机器发货到菲律宾的完整流程 广东智慧物流 为你整理了一份超详细的机器发货到菲律宾的攻略!海运14天轻松到达,让你无后顾之忧!&#x1f…

uniapp地图点击获取位置

主页面 <view class"right-content" click.stop"kilometer(item)"><view class"km">{{item.distance||0}}km</view><image src"../../static/map.png" mode""style"width: 32rpx; height: 32rpx…

【Java Web】Servlet控制器

目录 一、Servlet简介 二、Servlet运行流程 三、Servlet开发流程 四、Servlet-api.jar包导入和Content-Type问题 4.1 Servlet-api.jar导入问题 4.2 Http报文头中的Content-Type属性 五、Servlet_url-pattern请求映射路径设置 5.1 url-pattern方式 5.2 注解方式配置servlet 六、…

QCC51XX---开启手机log日志

QCC51XX---系统学习目录_trbi200软件-CSDN博客 目录 1.Vivo 2.华为 3.小米 4.三星 5.oppo 1.Vivo *#*#112#*#* 输入命令后会进入log日志系统(由于版本原因,界面可能不同),打开log开关,log就会在后台自动录制。 点击设置,则可进入图1(右边)的界面,可以导出log,导出…

Golang | Leetcode Golang题解之第200题岛屿数量

题目&#xff1a; 题解&#xff1a; func numIslands(grid [][]byte) int {res : 0for i : 0; i < len(grid); i {for j : 0; j < len(grid[i]); j {if grid[i][j] 1 {resdfs(grid, i, j)}}}return res }func dfs(grid [][]byte, r, c int) {h, w : len(grid), len(gri…

面试题-CAS(compare and swap)

1.CAS机制 悲观锁&#xff1a;始终假定会发生并发冲突&#xff0c;因此会屏蔽一切可能违反数据完整性的操作。 乐观锁&#xff1a;假设不会发生并发冲突&#xff0c;因此只在提交操作时检查是否违反数据完整性。 执行CAS操作时&#xff0c;比较内存位置的值(主内存的值)与预期…

Labview_映射表

1.创建映射表 创建映射表时&#xff0c;该映射表内的所有键为同一类型、键为同一类型。映射表键名可以为任意类型。 PS:生成映射表在使用时请保证唯一键名&#xff0c;如使用同一键名&#xff0c;则在最终输出时只能搜索到最新插入的键值对信息。 2.插入映射表 按照已创建的映…

数据采集Selenium中的弹窗处理

在爬虫技术中&#xff0c;弹窗处理是一个常见但具有挑战性的问题。Selenium作为一个强大的网页自动化工具&#xff0c;可以帮助我们有效地处理网页中的各种弹窗。本文将概述如何使用Selenium处理弹窗&#xff0c;并提供实现代码&#xff0c;代码中将使用代理IP技术。 概述 弹…

网络编程基础知识拾遗:用大白话解释什么是交换机、路由器、光猫、IP地址和子网掩码、公网和内网IP、端口和域名

二层交换机 在没有二层交换机的环境中&#xff0c;两台电脑或多个电脑之间的通信主要依赖于直连方式或共享介质。假如你和你的舍友都有一台电脑&#xff0c;当你们之间想要进行通信的时候&#xff0c;在没有二层交换机的情况下&#xff0c;可以使用网线&#xff08;为了方便理…

btrace使用记录

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 未经允许不得转载 目录 一、导读二、使用三、 推荐阅读 一、导…

线性代数基础概念:向量空间

目录 线性代数基础概念&#xff1a;向量空间 1. 向量空间的定义 2. 向量空间的性质 3. 基底和维数 4. 子空间 5. 向量空间的例子 总结 线性代数基础概念&#xff1a;向量空间 向量空间是线性代数中最基本的概念之一&#xff0c;它为我们提供了一个抽象的框架&#xff0c…

MySQL表解锁

查看锁信息 show full processlist 如果一个表被锁定了&#xff0c;会有一个 “Waiting for table metadata lock” 的提示&#xff0c;表明该表正在等待锁定。 解锁表 删除state上有值的事务 kill query 事务id 表解锁完成

迅为iTOP-2K1000开发板龙芯中科国产64位Loognix主板

硬件配置 国产龙芯处理器&#xff0c;双核64位系统&#xff0c;板载2G DDR3内存&#xff0c;流畅运行Busybox、Buildroot、Loognix、QT5.12 系统! 接口全板载4路USB HOST、2路千兆以太网、2路UART、2路CAN总线、Mini PCIE、SATA固态盘接口、4G接口、GPS接口WIF1、蓝牙、Mini H…

获取个人免费版Ubuntu Pro

首先上官网地址&#xff1a;Ubuntu Pro | Ubuntu 点击页面中的"Get Ubuntu Pro now" 将用途选为“Myself”&#xff0c;在此页面中Ubuntu说明了该版本只面向个人开发者&#xff0c;且最终只允许5台设备免费使用&#xff1b;因而部署设备的抉择就不得不慎重考虑了&am…

基于springboot实现机动车号牌管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现机动车号牌管理系统演示 摘要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&am…

node+nginx实现对react进行一键打包部署--windows版

文章目录 nodenginx实现对react进行一键打包部署--windows版1.功能展示及项目准备1.1功能展示 1.2 项目准备1.2.1技术点1.2.2安装相关配置(windows) 2.实现2.1 实现思路2.2 实现步骤2.1 项目准备2.1.1 创建env文件2.1.2 创建api/index.js文件2.1.3 添加解决跨域代码 2.2 项目实…

Android Studio中HAXM安装失败的解决方案(HAXM installation failed)

文章目录 错误示例Hyper-VWindows SandboxWindows Hypervisor Platform&#xff08;Windows 虚拟化监控程序平台&#xff09; 出现原因解决方法虚拟机平台方案一方案二方案三 错误示例 表明HAXM (Hardware Accelerated Execution Manager)安装失败了。HAXM是一个硬件辅助虚拟化…

FPGA SATA高速存储设计

今天来讲一篇如何在fpga上实现sata ip&#xff0c;然后利用sata ip实现读写sata 盘的目的&#xff0c;如果需要再速度和容量上增加&#xff0c;那么仅仅需要增加sata ip个数就能够实现增加sata盘&#xff0c;如果仅仅实现data的读写整体来说sata ip设计比较简单&#xff0c;下面…