USART串口理论知识总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

USART串口理论知识总结

  • 1、通讯的串行和并行
  • 1.串口采用发送数据代码并用printf重代码


1、通讯的串行和并行

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
时钟特性:比如你发送一个波形,
在这里插入图片描述
在这里插入图片描述

1.串口采用发送数据代码并用printf重代码

#include <stdint.h>
#include <stdio.h>
#include "gd32f30x.h"static void Usb2ComGpioInit(void)
{rcu_periph_clock_enable(RCU_GPIOA);//配置TX引脚对于的管脚为复用推挽输出模式,输出模式有复用和一般模式的区别,而输出无这样的的区别。gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_9);//发送引脚//配置TX引脚对于的管脚为上拉输入或者浮空输入//why  串口默认输出高电平,读取数据是,空闲状态和数据起始位都为低电平。gpio_init(GPIOA, GPIO_MODE_IPU, GPIO_OSPEED_10MHZ, GPIO_PIN_10);//接受引脚
}static void Usb2ComUartInit(uint32_t baudRate)
{/* 使能UART时钟;*/rcu_periph_clock_enable(RCU_USART0);/* 复位UART;*/usart_deinit (USART0);/* 通过USART_CTL0寄存器的WL设置字长;*/ /* 初始默认WL字长为8bit*/ usart_word_length_set(USART0, USART_WL_8BIT);/* 通过USART_CTL0寄存器的PCEN设置校验位;*//* 初始默认无校验位*/usart_parity_config(USART0, USART_PM_NONE);/* 在USART_CTL1寄存器中写STB[1:0]位来设置停止位的长度;*/ /*初始默认停止位1bit  可选0.5 1 1.5 2*/ usart_stop_bit_set(USART0, USART_STB_1BIT);/* 在USART_BAUD寄存器中设置波特率;*/ usart_baudrate_set(USART0, baudRate);/* 在USART_CTL0寄存器中设置TEN位,使能发送功能;*/usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);/* 在USART_CTL0寄存器中置位UEN位,使能UART;*/ usart_enable(USART0);
}void Usb2ComTest(void)
{for (uint8_t i = 0; i <= 250; i++){usart_data_transmit(USART0, i);//发送数据while (RESET == usart_flag_get(USART0, USART_FLAG_TBE));  //当TBE为0,等待,当TBE为0时,表示TXR数据寄存器有数据,需要继续等待//当TBE为1,跳出循环,表示TXR数据寄存器无数据,可以继续向位移寄存器下一个数据。总结:RENE和TBE标志位为1是都表示已经准备好的意思,可以开始接受和发送下一个数据。TC为1时表示数据发送完毕。}
//	while (RESET == usart_flag_get(g_uartHwInfo.uartNo, USART_FLAG_TC));
//	usart_transmit_config(g_uartHwInfo.uartNo, USART_TRANSMIT_DISABLE);//TC为1时,跳出循环,表示位移寄存器数据(无数据),即发送完毕。//TC为0时,等待,表示位移寄存器数据有数据,需要继续等待。
}/**
***********************************************************
* @brief USB转串口硬件初始化
* @param
* @return 
***********************************************************
*/
void Usb2ComDrvInit(void)
{Usb2ComGpioInit();Usb2ComUartInit(115200);
}/**
***********************************************************
* @brief printf函数默认打印输出到显示器,如果要输出到串口,必须重新实现fputc函数,将输出指向串口,称为重定向
* @param
* @return 
***********************************************************
*/
int fputc(int ch, FILE *f)
{usart_data_transmit(USART0, (uint8_t)ch);while (RESET == usart_flag_get(USART0, USART_FLAG_TBE));return ch;
}

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

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

相关文章

GPT-4o mini 时代:开发者的机遇、挑战与经验共享

在当今科技飞速发展的时代&#xff0c;OpenAI 最新发布的 GPT-4o mini 模型以其卓越的性能和极具竞争力的价格&#xff0c;在技术领域掀起了一股热潮&#xff0c;引发了广泛的关注。对于广大开发者来说&#xff0c;这无疑是一个令人振奋的新契机。 GPT-4o mini 模型的诞生&…

【C++】流插入和流提取运算符重载

目录 前言ostream和istream自定义类型的流插入重载自定义类型的流提取重载解决私有问题日期类总接口 前言 我们在上一节实现日期类时&#xff0c;在输入和输出打印时&#xff0c;经常会调用两个函数&#xff1a; void Insert()//输入函数{cin >> _year;cin >> _mo…

放眼全局做好真正的IT系统架构

一、系统架构存在的问题 当再次复盘业务架构、应用架构、技术架构、数据架构时这些过程域时&#xff0c;发现公司的这些架构如同一盘散沙。 1、业务架构随意&#xff0c;想到什么做什么&#xff0c;想法一天一个&#xff0c;天马行空。要么就是信息不对称&#xff0c;不统一。…

【Java】/* 浅谈String(下) */

目录 一、字符串的不可变性 二、字符串的修改 三、StringBuilder和StringBuffer 四、面试题 一、字符串的不可变性 1. 如上图所示&#xff0c;String类的是被final修饰的类(不能被继承)&#xff0c;成员变量value值是一个被final修饰的字节型数组。 2. 以下图代码为例&…

JavaWeb笔记_Session

Session概述 Session是一种在服务端记录用户会话信息的技术 Session的创建和获取 /*** HttpServletRequest对象中的方法:* public HttpSession getSession()* 如果当前服务端没有session,那就在服务端新建一个session对象* 如果在服务端有这个session,那么就直…

Java企业微信服务商代开发获取AccessToken示例

这里主要针对的是企业微信服务商代开发模式 文档地址 可以看到里面大致有三种token&#xff0c;一个是服务商的token&#xff0c;一个是企业授权token&#xff0c;还有一个是应用的token 这里面主要有下面几个参数 首先是服务商的 corpid 和 provider_secret &#xff0c;这个可…

mysql常用函数五大类

mysql常用函数 1. 第一类&#xff1a;数值函数1.1 圆周率pi的值1.2 求绝对值1.3 返回数字的符号1.4 开平方&#xff0c;根号1.5 求两个数的余数1.6 截取正数部分1.7 向上取整数1.8 向下取整数1.9 四舍五入函数1.10 随机数函数1.11 数值左边补位函数1.12 数值右边补位函数1.13 次…

83. UE5 RPG 实现属性值的设置

在前面&#xff0c;我们实现了角色升级相关的功能&#xff0c;在PlayerState上记录了角色的等级和经验值&#xff0c;并在变动时&#xff0c;通过委托广播的形式向外广播&#xff0c;然后在UI上&#xff0c;通过监听委托的变动&#xff0c;进行修改等级和经验值。 在这一篇里&a…

鸿蒙开发仓颉语言【Hyperion: 一个支持自定义编解码器的TCP通信框架】组件

Hyperion: 一个支持自定义编解码器的TCP通信框架 特性 支持自定义编解码器高效的ByteBuffer实现&#xff0c;降低请求处理过程中数据拷贝自带连接池支持&#xff0c;支持连接重建、连接空闲超时易于扩展&#xff0c;可以积木式添加IoFilter处理入栈、出栈消息 组件 hyperio…

Mongodb的通配符索引

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第95篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?

代理IP协议是一种网络代理技术&#xff0c;可以实现隐藏客户端IP地址、加速网站访问、过滤网络内容、访问内网资源等功能。常用的IP代理协议主要有Socks5代理、HTTP代理、HTTPS代理这三种。代理IP协议主要用于分组交换计算机通信网络的互联系统中使用&#xff0c;只负责数据的路…

开局一个启动器:从零开始入坑ComfyUI

前几天刷某乎的时候看到了一位大佬写的好文&#xff0c;可图 IP-Adapter 模型已开源&#xff0c;更多玩法&#xff0c;更强生态&#xff01; - 知乎 (zhihu.com) 久闻ComfyUI大名&#xff0c;决定试一下。这次打算不走寻常路&#xff0c;不下载现成的一键包了&#xff0c;而是…

let、var、const 的区别 --js面试题

作用域 ES5中的作用域有&#xff1a;全局作用域、函数作用域&#xff0c;ES6中新增了块级作用域。块作用域由 { } 包括&#xff0c;if 语句和 for 语句里面的 { } 也属于块作用域。 var 1.没有块级作用域的概念&#xff0c;但具有函数全局作用域、函数作用域的概念 {var a …

别再只知道埋头苦学python了!!学了python后月入1w不在话下,不准你还不知道!!!

在Python接单的过程中&#xff0c;掌握一些技巧、注意相关事项以及选择合适的接单平台是非常重要的 一、Python接单要注意哪些 报酬问题&#xff1a;在接单前&#xff0c;务必明确客户所说的报酬是税前还是税后&#xff0c;以避免后期产生纠纷。时间管理&#xff1a;不要与客户…

Nginx 如何处理 WebSocket 连接?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 Nginx 如何处理 WebSocket 连接&#xff1f;一、WebSocket 连接简介二、Nginx 处理 WebSocket 连接的基本原理三、配置 Nginx 支持 WebSocket 连接四、Nginx 中的…

【启明智显分享】甲醛检测仪HMI方案:ESP32-S3方案4.3寸触摸串口屏,RS485、WIFI/蓝牙可选

今年&#xff0c;“串串房”一词频繁引发广大网友关注。“串串房”&#xff0c;也被称为“陷阱房”“贩子房”——炒房客以低价收购旧房子或者毛坯房&#xff0c;用极度节省成本的方式对房子进行装修&#xff0c;之后作为精修房高价租售&#xff0c;因甲醛等有害物质含量极高&a…

“从爱好者到职业画师:一位AI绘画践行者的赚钱实战秘籍“

&#x1f3a8; 【引子&#xff1a;AI绘画&#xff1a;艺术与科技的交汇】 在数字化浪潮席卷全球的今天&#xff0c;人工智能技术以其颠覆性的力量&#xff0c;正悄然改写着艺术创作的传统版图。当AI与绘画碰撞交融&#xff0c;诞生出一种全新的艺术形式——AI绘画。它不仅是科…

别只盯着苹果了,华为Mate70也有AI技术,听说效果让人直接惊呼

随着人工智能技术的不断进步&#xff0c;智能手机行业也迎来了前所未有的变革。苹果、三星等国际知名手机厂商纷纷在新品发布会上重点展示其手机的AI技术&#xff0c;而华为作为中国科技的领军企业&#xff0c;其在AI领域的成就同样不容小觑。 华为Mate系列作为其旗舰系列&…

科研绘图系列:R语言组合热图和散点图

介绍 热图展示参与者的属性,散点图表示样本的时间跨度。 加载R包 library(tidyverse) library(ComplexHeatmap) library(circlize) library(cowplot)导入数据 数据可从以下链接下载(画图所需要的所有数据): 百度云盘链接: https://pan.baidu.com/s/1iEE9seTLdrrC3WDHJy…

计算机网络基础:3.DNS服务器、域名分类

一、DNS服务器 DNS服务器在网络中的作用类似于餐厅中的“顾客座位对照表”&#xff0c;它帮助前台&#xff08;路由器&#xff09;将顾客&#xff08;用户&#xff09;的请求转发到正确的餐桌&#xff08;目标设备&#xff09;。 (1)概念与原理 DNS的基本概念 DNS&…