UART学习
uart.c
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_uart.h"
// UART4_TX : PG11 AF6
// UART4_RX : PB2 AF8
void __uart_init()
{// GPIOB2 设置为复用功能GPIOB->MODER &= (~(0x3 << 4));GPIOB->MODER |= (0x2 << 4);GPIOB->AFRL &= (~(0xF << 8));GPIOB->AFRL |= (0x8 << 8);// GPIOG11 设置为复用功能 GPIOG->MODER &= (~(0x3 << 22));GPIOG->MODER |= (0x2 << 4);GPIOG->AFRH &= (~(0xF << 12));GPIOG->AFRH |= (0x6 << 12);// 设置数据长度为8位 USART_CR1 USART4->CR1 &= (~(0x1 << 28));USART4->CR1 &= (~(0x1 << 12));// 采样率为16位 USART4->CR1 &= (~(0x1 << 15));// 设置波特率为115200bps USART4->PRESC &= (~(0xF << 0));USART4->BRR = 0xD0;// 停止位1位USART4->CR2 &= (~(0x3 << 12));// 使能USART串口 USART4->CR1 |= (0x1 << 0);// 使能USART的发送或者接收功能 USART4->CR1 |= (0x1 << 3);USART4->CR1 |= (0x1 << 2);}void __uart_putc(const char data)
{while (!(USART4->ISR & (0x1 << 7)));USART4->TDR = data;if (data == '\n')__uart_putc('\r');
}
void __uart_puts(const char *pstr)
{while(*pstr != '\0')__uart_putc(*pstr++);
}char __uart_getc(void)
{char ch;while(!(USART4->ISR & (0x1 << 5)));ch = (char)USART4->RDR;return ch;
}
uart.h
#ifndef __UART_H__
#define __UART_H__void __uart_init();void __uart_putc(const char data);void __uart_puts(const char *pstr);char __uart_getc(void);#endif
mian,c
main()
{//1.串口的初始化__uart_init();char r,t;while(1){//2.接收一个字节数据r = __uart_getc();printf("%c\n",r);//3/发送一个字节数据printf("请输入:\n");scanf("%c",&t);__uart_putc(t);}
}
相关文章:
UART学习
uart.c #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h" // UART4_TX : PG11 AF6 // UART4_RX : PB2 AF8 void __uart_init() {// GPIOB2 设置为复用功能GPIOB->MODER & (~(0x3 << 4));GPIOB->MODER | (0x2 << 4);G…...
洗地机哪个牌子最好用?洗地机品牌排行榜
近年来,洗地机相当热门,洗地机结合了扫地拖地吸地为一体的多功能清洁工具,让我们告别了传统方式打扫卫生,让我们清洁不再费劲,可是市面上的洗地机五花八门,怎么挑选到一个洗地机也是一个问题,下…...
国际阿里云:Windows实例中数据恢复教程!!!
在处理磁盘相关问题时,您可能会碰到操作系统中数据盘分区丢失的情况。本文介绍了Windows系统下常见的数据盘分区丢失的问题以及对应的处理方法,同时提供了使用云盘的常见误区以及最佳实践,避免可能的数据丢失风险。 前提条件 已注册阿里云账…...
浅谈二叉树
✏️✏️✏️今天给大家分享一下二叉树的基本概念以及性质、二叉树的自定义实现,二叉树的遍历等。 清风的CSDN博客 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流&…...
(二) 用QWebSocket 实现服务端和客户端(详细代码直接使用)
目录 前言 一、服务器的代码: 1、服务器的思路 2、具体服务器的代码示例 二、客户端的代码: 1、客户端的思路(和服务器类似) 2、具体客户端的代码示例 前言 要是想了解QWebSocket的详细知识,还得移步到上一篇文…...
关于我在配置zookeeper出现,启动成功,进程存在,但是查看状态却没有出现Mode:xxxxx的问题和我的解决方案
在我输入:zkServer.sh status 之后出现报错码. 报错码: ZooKeeper JMX enabled by default Using config: /opt/software/zookeeper/bin/../conf/zoo.cfgClient port found: 2181. Client address: localhost. Error contacting service. It is probably not runni…...
react及相关面试问题汇总
目录 1、什么是React?它的特点是什么? 2、解释一下虚拟DOM(Virtual DOM)的概念以及它的工作原理。 3、什么是组件(Component)?如何定义一个React组件? 4、什么是JSX?它与HTML的区别是什么?如何在React中…...
QT4到QT5移植出现的一些问题
转自:QT4到QT5移植出现的一些问题_西门子3gl qt5 许可证-CSDN博客 在上述作者基础上修改: 一、问题1:头文件的问题 1、QtGui/QApplication: No such file or directory 1.1错因 原因是Qt5源文件位置的改动 1.2解决 pro文件里࿰…...
【可解释AI】Alibi explain: 解释机器学习模型的算法
Alibi explain: 解释机器学习模型的算法 可解释人工智能简介Alibi特点算法Library设计展望参考资料 今天介绍Alibi Explain,一个开源Python库,用于解释机器学习模型的预测(https://github.com/SeldonIO/alibi)。该库具有最先进的分类和回归模型可解释性算…...
No191.精选前端面试题,享受每天的挑战和学习
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…...
ROS基础—vscode创建工作空间
1、创建ROS工作空间 首先打开ubuntu的终端,接着依次输入如下的命令行; mkdir -p xxx_ws/src(必须得有 src) cd xxx_ws catkin_make当然我一般是新建一个叫做demo的工作空间,如 mkdir -p demo04_ws/src 2、启动vscode cd xxx_ws code . …...
机器学习复习(待更新)
01绪论 (1)机器学习基本分类: 监督学习(有标签)半监督学习(部分标签,找数据结构)无监督学习(无标签,找数据结构)强化学习(不断交互&…...
taro(踩坑) npm run dev:weapp 微信小程序开发者工具预览报错
控制台报错信息: VM72:9 app.js错误: Error: module vendors-node_modules_taro_weapp_prebundle_chunk-JUEIR267_js.js is not defined, require args is ./vendors-node_modules_taro_weapp_prebundle_chunk-JUEIR267_js.js 环境: node 版本&#x…...
3. 深度学习——损失函数
机器学习面试题汇总与解析——损失函数 本章讲解知识点 什么是损失函数?为什么要使用损失函数?详细讲解损失函数本专栏适合于Python已经入门的学生或人士,有一定的编程基础。 本专栏适合于算法工程师、机器学习、图像处理求职的学生或人士。 本专栏针对面试题答案进行了优化…...
交叉编译 openssl
要在 x86 平台上编译适用于 aarch64 架构的 OpenSSL 动态库,你需要使用交叉编译工具链。可以按照以下步骤进行: 安装 aarch64 交叉编译工具链: $ sudo apt-get install gcc-aarch64-linux-gnu g-aarch64-linux-gnu 这将安装 aarch64 交叉编…...
C++文件的读取和写入
1、C对txt文件的读,ios::in #include<iostream> #include<fstream> using namespace std;int main() {ifstream ifs;ifs.open("test.txt",ios::in);if(!ifs.is_open()){cout<<"打开文件失败!"<<endl;}char…...
住宅IP、家庭宽带IP以及原生IP,它们有什么区别?谷歌开发者账号应选择哪种IP?
IP地址(Internet Protocol Address)是互联网协议地址的简称,是互联网通信的基础,互联网上每一个网络设备的唯一标识符每个在线的设备都需要一个IP地址,这样才能在网络中找到它们并进行数据交换。 IP地址有很多种类型&…...
Linux内核分析(十三)--内存管理之I/O交换与性能调优
目录 一、引言 二、page cache ------>2.1、file-backed ------>2.2、匿名页(Anonymous page) ------>2.3、读写方式 ------>2.4、常驻内存 三、页面回收 ------>3.1、LRU算法 ------>3.2、嵌入式系统的zRAM 四、内存性能调优 ------>4.1、存储…...
前端使用webscoket
前端 <template><div class"wrap"><button click"socketEmit">连接Socket</button><button click"socketSendmsg">发送数据</button></div> </template><script> export default {data(…...
centos安装Git
一开始使用yum -y install git出来的版本比较低。 1.yum安装gityum -y install git 2.查看git的版本git --version 3.删除git(版本过低)yum remove -y git 后来通过源码编译后安装: 使用安装包安装: 1.下载安装包:h…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
Linux入门课的思维导图
耗时两周,终于把慕课网上的Linux的基础入门课实操、总结完了! 第一次以Blog的形式做学习记录,过程很有意思,但也很耗时。 课程时长5h,涉及到很多专有名词,要去逐个查找,以前接触过的概念因为时…...
新版NANO下载烧录过程
一、序言 搭建 Jetson 系列产品烧录系统的环境需要在电脑主机上安装 Ubuntu 系统。此处使用 18.04 LTS。 二、环境搭建 1、安装库 $ sudo apt-get install qemu-user-static$ sudo apt-get install python 搭建环境的过程需要这个应用库来将某些 NVIDIA 软件组件安装到 Je…...
Vue3学习(接口,泛型,自定义类型,v-for,props)
一,前言 继续学习 二,TS接口泛型自定义类型 1.接口 TypeScript 接口(Interface)是一种定义对象形状的强大工具,它可以描述对象必须包含的属性、方法和它们的类型。接口不会被编译成 JavaScript 代码,仅…...
