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

目录

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.mfbz.cn/a/745462.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+Vue高校宿舍管理系统的设计与实现【附源码】

本科毕业设计(论文) 基于springbootVue高校宿舍管理系统的设计与实现 目录 摘要 2 第一章 绪论 2 1.1 开发背景 2 1.2 开发意义 2 第二章 系统分析 3 2.1 系统的需求分析 3 2.2 系统开发设计思想 3 2.3系统开发步骤 3 2.4 系统的主要技术 4 2.4.1 B/S系…

70年,800个,全球AI大模型数据可视化;750名工程师透露的AI真相;GenAI将取代初级程序员?NO!出海美国的创始人必读手册 | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. Anthropic 发布 Claude Artifacts,大模型从「聊天」正式迈入「工作流」 上周,Anthropic 公司发布了最新的大模型 Claude 3.5 Sonnet&am…

2024年【山东省安全员B证】最新解析及山东省安全员B证操作证考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【山东省安全员B证】最新解析及山东省安全员B证操作证考试,包含山东省安全员B证最新解析答案和解析及山东省安全员B证操作证考试练习。安全生产模拟考试一点通结合国家山东省安全员B证考试最新大纲及…

AI助手的超级工具箱:Phidata框架实战指南

目录 引言一、Phidata概述二、Phidata的安装与快速入门1、安装Phidata2、环境配置3、快速入门3.1 可以搜索网页的助手3.2 可以查询财务数据的助手 三、Phidata的高级应用1、可以编写和运行Python代码的助手2、可以使用 SQL 分析数据的助手3、可生成 Pydantic 模型的助手4、具有…

探索Uptime命令:Linux系统管理员的必备工具

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 探索Uptime命令:Linux系统管理员的必备工具 前言基本用法语法输出示例输出字段解释系…

【RF Transceiver】ADRV9040 8T8R

具有DFE、400MHz iBW射频收发器的8T8R SoC 特性 8个差分发送器(Tx) 8个差分接收器(Rx) 2个观察接收器(ORx) 单频段和多频段(N x 2T2R/4T4R)能力 可调范围1内4个波段轮廓 调谐范围&a…

记录一个笔误引发的bug导致生产环境报错,但是本地环境,测试环境运行正常

记录一个笔误引发的bug导致生产环境报错,但是本地环境,测试环境运行正常 因为headers请求头过长导致报错 在feign外调其他系统时候,是重新封装headers 问题在于 MultiValueMap 属于静态变量。这里讲userAgent的内容传递过去。是不断累加的…

Stable Diffusion【进阶篇】:真人漫改之迪士尼风格定制

大家好,我是极客菌 关于真人漫改是一个应用比较多的图片定制方向,本文以及后面的章节我们结合一些具体的大模型或者LORA来更深入的实践一下。 一. 迪士尼风格 在SD的大模型中,实现迪士尼或者皮卡斯风格的图片,首推 Disney Pix…

C# 任务调度 c# TaskScheduler

摘要 在C#中,TaskScheduler是一种非常有用的功能,它允许您在指定的时间或间隔内执行任务。TaskScheduler是一个抽象类,它提供了一个通用的方法来计划和执行任务。您可以使用TaskScheduler来调度多个任务,并且在多线程环境中控制它…

智能体——父亲兴趣爱好助手

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…

HDOJ5616 Jam‘s balance

目录 HDOJ5616 Jams balance题目描述背景输入输出 题解解法一解法二优化 打赏 HDOJ5616 Jam’s balance 题目描述 背景 有 N N N个已知质量的砝码,分别询问给出的 M M M个质量能否被称出 输入 第一行输入一个变量 T T T,表示有 T T T组数据&#xf…

LLM生成模型在生物蛋白质应用:ESM3

参考: https://github.com/evolutionaryscale/esm 报告:https://www.evolutionaryscale.ai/blog/esm3-release 通过GPT模型原理,输入蛋白质序列等模态输出预测的蛋白质序列及结构 使用 参考:https://colab.research.google.c…

智能扫地机,让生活电器更加便民-NV040D扫地机语音方案

一、语音扫地机开发背景: 随着人工智能和物联网技术的飞速发展,智能家居设备已成为现代家庭不可或缺的一部分。其中,扫地机作为家庭清洁的重要工具,更是得到了广泛的关注和应用。 然而,传统的扫地机在功能和使用上仍存…

深圳比创达EMC|EMC与EMI滤波器:在电子设备中的平衡之道

随着科技的快速发展,电子设备已经深入到我们生活的方方面面,从家用电器到工业设备,从通信设备到医疗仪器,都离不开电子技术的支持。然而,电子设备在带来便利的同时,也面临着电磁兼容(EMC&#x…

一个很好用的地图工具的使用:思极地图,以及vue+思极地图的使用

前言: 随着现在国网等一部分公司的需求,在线地图-思极地图 出现在我们眼前,给我们带来了很多便利,这里分享下他的信息与使用。 实现效果: 相关资料: 1、官网地址 2、在线地址 3、官方api地址 实现步骤-js…

河南资信乙级预评价:人员需缴唯一社保吗?

河南资信乙级预评价中,人员确实需要缴纳唯一社保。以下是详细的解读和归纳: 一、社保唯一性的定义 社保唯一性指的是参与河南资信乙级预评价的咨询工程师(投资)必须在申请单位有唯一且连续的社保缴纳记录。这一要求旨在确保咨询…

鸿蒙 HarmonyOS NEXT星河版APP应用开发阶段三-热门组件使用及案例

一、样式和结果重用 介绍 /* Extend:扩展组件(样式、事件) Styles: 抽取通用数据、事件 Builder:自定义构建函数(结构、样式、事件) */Extend /* 作用:扩展组件(样式、事件) 场景:…

C语言 | Leetcode C语言题解之第189题轮转数组

题目&#xff1a; 题解&#xff1a; void swap(int* a, int* b) {int t *a;*a *b, *b t; }void reverse(int* nums, int start, int end) {while (start < end) {swap(&nums[start], &nums[end]);start 1;end - 1;} }void rotate(int* nums, int numsSize, int…

JavaScript创建标签式组件

我们本篇将实现下面的这个标签式组件 我们本篇将实现下面的这个标签式组件 ● 当然我们首先将我们需要的元素存储到变量中&#xff0c;方便后面使用 const tabs document.querySelectorAll(.operations__tab); //获取所有的button const tabsContainer document.querySele…

ROS CDK魔法书:点亮博客上云新技能(Python篇)

引言 在数字世界的浩瀚海洋中&#xff0c;信息与数据如同戏剧中的主角&#xff0c;舞动着无形的旋律&#xff0c;构建起信息时代的交响乐。而在这其中&#xff0c;作为一位技术领域的探索者&#xff0c;你的使命便是挥舞着编码的魔杖&#xff0c;创造和守护着这些宝贵的数字灵…