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

目录

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.rhkb.cn/news/365194.html

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

相关文章

论文阅读_优化RAG系统的检索

英文名称: The Power of Noise: Redefining Retrieval for RAG Systems 中文名称: 噪声的力量:重新定义RAG系统的检索 链接: https://arxiv.org/pdf/2401.14887.pdf 作者: Florin Cuconasu, Giovanni Trappolini, Federico Siciliano, Simone Filice, Cesare Campag…

MySQL周内训参照3、简单查询与多表联合复杂查询

基础查询 1、查询用户信息,仅显示用户的姓名与手机号,用中文显示列名。中文显示姓名列与手机号列 SELECT user_id AS 编号, phone AS 电话 FROM user; 2. 根据订购表进行模糊查询,模糊查询需要可以走索引,需要给出explain语句。…

基于bootstrap的12种登录注册页面模板

基于bootstrap的12种登录注册页面模板,分三种类型,默认简单的登录和注册,带背景图片的登录和注册,支持弹窗的登录和注册页面html下载。 微信扫码下载

【操作系统期末速成】 EP01 | 学习笔记(基于五道口一只鸭)

文章目录 一、前言🚀🚀🚀二、正文:☀️☀️☀️1.1 考点一:操作系统的概率及特征 三、总结:🍓🍓🍓 一、前言🚀🚀🚀 ☀️ 回报不在行动…

HDFS详细介绍以及HDFS集群环境部署【hadoop组件HDFS笔记】(图片均为学习时截取的)

HDFS详细介绍 HDFS是什么 HDFS是Hadoop三大组件(HDFS、MapReduce、YARN)之一 全称是:Hadoop Distributed File System(Hadoop分布式文件系统);是Hadoop技术栈内提供的分布式数据存储解决方案 可以在多台服务器上构建存储集群&…

Crontab命令详解:轻松驾驭Linux定时任务,提升系统效率

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL》 💪🏻 制定明确可量化的目标,坚持默默的做事。 引言: crond是Linux系统中用来定期执行命令或指定程序任务的一种服务或软件…

Ubuntu20.04离线安装dpkg

方法一:百度云盘下载离线安装包 链接:https://pan.baidu.com/s/1L7TaFwE35bMfOJbXmJcWwQ 提取码:mjsm --来自百度网盘超级会员V4的分享 方法二:找一台联网计算机,自行下载离线安装包。 1. 创建存放离线包文件夹 …

SAP的RFID

射频识别 (RFID) 避免了条码扫描的局限性,条码扫描需要对每个条码进行视线访问,并且一次只能用于扫描一个项目。 一次扫描一个标签可能会令人厌烦和压力大,这会增加人为错误的机会。相反,RFID 标签不需要直…

linux中awk,sed, grep使用(待补充)

《linux私房菜》这本书中将sed和awk一同归为行的修改这一点,虽然对,但不利于实际处理问题时的思考。因为这样的话,当我们实际处理问题时,遇到比如说统计文本打印内容时,我们选择sed还是awk进行处理呢? 也因…

安装ubuntu过程中,出现“执行‘grub-install/dev/sda’失败,这是一个致命错误”问题,解决办法!软碟通制作U盘启动盘!

背景 U盘安装ubuntu系统过程中,出现类似如下问题,/dev/sda7内容可能不一样,但问题类似。 可能原因 1.U盘启动盘制作失败 2.U盘启动盘UEFI格式与Ubuntu引导分区有冲突 解决办法 1.用UltraISO(软碟通)重新制作U盘启…

基于源码详解ThreadPoolExecutor实现原理

个人博客地址 基于源码详解ThreadPoolExecutor实现原理 | iwts’s blog 内容拆分 这里算是一个总集,内容太多,拆分成几个比较重要的小的模块: ThreadPoolExecutor基于ctl变量的声明周期管理 | iwts’s blog ThreadPoolExecutor 工作线程…

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以…

直流无刷电机无感转子位置检测

1 无位置传感控制驱动工作原理 1.1 无刷直流电机工作原理(图 1) 电动机和电子驱动电路两部分形成了无刷直流电机。 电动机部分与传统的交流永磁同步电机基本相似。根据 驱动需求,无刷直流电机还需要位置传感器 1.2 无位置传感控制驱动 无刷直流电机的无位置传感控制驱动…

python解锁图片相似度的神奇力量

在这个信息爆炸的时代,图片成为了我们传递信息、表达情感和记录生活的重要方式。然而,面对海量的图片资源,如何快速准确地找到相似的图片,成为了一个亟待解决的问题。现在,让我们为您揭开图片相似度的神秘面纱,带您领略这一创新技术的魅力! 图片相似度技术,就像是一位…

10款好用不火的PC软件,真的超好用!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/市场上有很多软件,除了那些常见的大众化软件,还有很多不为人知的小众软件,它们的作用非常强大,简洁…

Vue.js 和 Node.js 全栈项目的运行与部署指南

Vue.js 和 Node.js 全栈项目的运行与部署指南 前言具体运行方式导入数据库初始化安装配置nodejs启动server后端启动client前端确保前后端正确连接 前言 本博客用来介绍一下一个包含前端和后端代码的全栈项目MoreMall,前端部分使用了 Vue.js,后端部分使用…

springboot 缓存框架Cache整合redis组成二级缓存

springboot 缓存框架Cache整合redis组成二级缓存 项目性能优化的解决方案除开硬件外的方案无非就是优化sql,减少sql 的执行时间,合理运用缓存让同样的请求和数据库之间的连接尽量减少,内存的处理速度肯定比直接查询数据库来的要快一些。今天就…

逻辑这回事(七)---- 器件基础

Xilinx FPGA创建了先进的硅模块(ASMBL)架构,以实现FPGA具有针对不同应用程序领域优化的各种功能组合的平台。通过这一创新,Xilinx提供了更多的设备选择,使客户能够为其特定设计选择具有正确的功能和功能组合的FPGA。ASMBL体系结构通过以下方式突破了传统的设计障碍:消除几…

使用Llama3/Qwen2等开源大模型,部署团队私有化Code Copilot和使用教程

目前市面上有不少基于大模型的 Code Copilot 产品,部分产品对于个人开发者来说可免费使用,比如阿里的通义灵码、百度的文心快码等。这些免费的产品均通过 API 的方式提供服务,因此调用时均必须联网、同时需要把代码、提示词等内容作为 API 的…

数据倾斜优化:Hive性能提升的核心

文章目录 1. 定义2. 数据倾斜2.1 Map2.2 Join2.3 Reduce 3. 写在最后 1. 定义 数据倾斜,也称为Data Skew,是在分布式计算环境中,由于数据分布不均匀导致某些任务处理的数据量远大于其他任务,从而形成性能瓶颈的现象。这种情况在H…