4.15 day6 ARM

server/2024/9/20 7:05:25/ 标签: arm开发

uart.c

#include "uart4.h"
void uart4_config()
{RCC->MP_AHB4ENSETR |= (0X1 << 6);//GRCC->MP_AHB4ENSETR |= (0X1 << 1);//BRCC->MP_APB1ENSETR |= (0X1 << 16);//UART4
//管脚复用GPIOG->MODER  &= (~(0X3 << 22));GPIOG->MODER |= (0X2 << 22);GPIOB->MODER &= (~(0X3 << 4));GPIOB->MODER |= (0X2 << 4);GPIOG->AFRH &= (~(0XF << 12));//UART4_TXGPIOG->AFRH |= (0X6 << 12);GPIOB->AFRL &= (~(0XF << 8));//UART4_RXGPIOB->AFRL |= (0X8 << 8);//USART设置USART4->CR1 &= (~(0X1));//使能禁用USART4->CR1 &= (~(0X1 << 28));//设置数据位USART4->CR1 &= (~(0X1 << 12));USART4->CR1 &= (~(0x1 << 15));//设置过采样倍数USART4->CR1 &= (~(0x1 << 10));//设置无奇偶校验位USART4->CR1 |= (0X1 << 3);//发送器使能位USART4->CR1 |= (0X1 << 2);//接收器使能位USART4->CR2 &= (~(0X1 << 12));USART4->BRR = (0X22B);USART4->PRESC &= (~(0XF));//设置不分频USART4->CR1 |= (0X1 << 0);//串口工作使能位}void putchar(char dat)
{while (!(USART4->ISR & (0X1 << 7)));USART4->TDR = dat;while (!(USART4->ISR & (0X1 << 6)));}char getchar()
{while (!(USART4->ISR & (0X1 << 5)));return USART4->RDR;}void puts(char *a)
{int i=0;while (a[i] != '\0'){putchar(a[i]);i++;}putchar('\n');putchar('\r');
}char * gets(char *b)
{int i=0;for(;(b[i]=getchar()) != '\r';i++){putchar(b[i]);}putchar('\r');putchar('\n');b[i]='\0';//  for (int i = 0; i < 128; i++)// {//     b[i] = getchar(); // 将接收到的字符放入str中//     putchar(b[i]); // 将接收到的字符串发送回串口调试助手//     if (b[i] == '\r') // 如果接收到了换行符//     {//         putchar('\n'); // 将接收到的字符串发送回串口调试助手//         b[i+1] = '\0';//         break;//     }return b;
}

uart.h

#ifndef  __UART4_H__
#define __UART4_H__
#include  "stm32mp1xx_gpio.h" 
#include  "stm32mp1xx_rcc.h" 
#include  "stm32mp1xx_uart.h" void uart4_config();
void putchar(char dat);
char getchar();
char * gets(char *b);
void puts(char *a);#endif

main.c

#include "uart4.h"int main()
{char dat[128];while(1){gets(dat);puts(dat);}return 0;}


http://www.ppmy.cn/server/8749.html

相关文章

安装zabbix server

目录 1、实验环境 2、yum 安装zabbix server 2.1 解决权限问题和放行流量 2.2 安装zabbix-server 1、实验环境 操作系统rhel8zabbix6.0TLS数据库mysql8.0.30IP地址192.168.81.131时间配置NTP时间服务器同步 2、yum 安装zabbix server 如果通过yum源安装&#xff0c;操作系…

企业监控员工电脑的软件分享,公司电脑监控软件有哪些

员工在使用电脑时可能会进行与工作无关的活动&#xff0c;如浏览社交媒体、玩游戏等。 也可能会在不知情的情况下访问恶意网站、下载含有病毒的文件&#xff0c;或者泄露敏感信息。 这些都可能对企业的信息安全构成严重威胁&#xff0c;因此企业会有监控员工电脑的想法。 一、…

冯唐成事心法笔记

文章目录 卷首语 管理是一生的日常&#xff0c;成事是一生的修行PART 1 知己 用好自己的天赋如何管理自我用好你的天赋成大事无捷径如何平衡工作和生活做一个真猛人做自己熟悉的行业掌控情绪如何对待妒忌和贪婪如何战胜自己&#xff0c;战胜逆境真正的高手都有破局思维有时候…

OpenHarmony实战开发-Grid和List内拖拽交换子组件位置。

介绍 本示例分别通过onItemDrop()和onDrop()回调&#xff0c;实现子组件在Grid和List中的子组件位置交换。 效果图预览 使用说明&#xff1a; 拖拽Grid中子组件&#xff0c;到目标Grid子组件位置&#xff0c;进行两者位置互换。拖拽List中子组件&#xff0c;到目标List子组件…

ChatGPT如何助力科研创新,提升研究效率?

随着人工智能技术的快速发展&#xff0c;其在科研领域的应用也愈发广泛。AI不仅提升了科研创新的效率&#xff0c;还为科研人员带来了前所未有的便利。本文将从ChatGPT深度科研应用、数据分析及机器学习、AI绘图以及高效论文撰写等方面&#xff0c;综述AI如何助力科研创新与效率…

Suno,属于音乐的ChatGPT时刻来临

AI绘画 AI视频我们见过了&#xff0c;现如今AI都能生成一首音乐&#xff0c;包括编曲&#xff0c;演唱&#xff0c;而且仅需几秒的时间便可创作出两分钟的完整歌曲 相信关注苏音的很大一部分都是从获取编曲或者混音插件来的&#xff0c;现如今AI却能帮你几秒生成曲子 今天就带…

kubernetes中的静态POD

我们都知道&#xff0c;pod是kubelet创建的&#xff0c;那么创建的流程是什么呐&#xff1f; 此时我们需要了解k8s中config.yaml配置文件了&#xff1a; 他的存放路径&#xff1a; 【/var/lib/kubelet/config.yaml】 一、查看静态pod的路径 [K8Sk8s-master ~]$ sudo cat /va…

算法刷题记录 Day52

算法刷题记录 Day52 Date: 2024.04.20 lc 84. 柱状图中最大的矩形 // 单调栈 class Solution { public:int largestRectangleArea(vector<int>& heights) {// 对于每个柱子&#xff0c;我们考虑按当前柱子进行中心扩散&#xff0c;直到找到其左侧及其右侧&#xf…

【Linux】简单的线程池

目录 线程池介绍 基本概念 定义 组成部分 线程池的优点 资源高效 响应迅速 可管理性 线程池的工作原理 线程池的使用场景 线程池的注意事项 实现简单的线程池 前置函数 Mutex 类介绍 LockGuard 类介绍 Log类的介绍 枚举定义 Log类 全局对象 Conf类 myThre…

SOCKS5代理IP指什麼?

SOCKS5代理IP是一種網路協議&#xff0c;它可以在客戶端和目標伺服器之間建立一個隧道&#xff0c;以進行數據交換&#xff0c;並隱藏用戶的真實IP地址。它是SOCKS協議的最新版本&#xff0c;不僅可以支持TCP和UDP協議&#xff0c;還支持各種類型的網路請求&#xff0c;包括HTT…

Redis key(BigKey、MoreKey)的存储策略

1. MoreKey 案例 1.1 大批量往 redis 里面 插入2000w 测试数据key (1) Linux Bash 下面执行&#xff0c;插入 100w rootspray:~# for((i1;i<100*10000;i)); do echo "set k$i v$i" >> /tmp/redisTest.txt; done; 查看 rootspray:~# more /tmp/redisTest.…

在Spring Boot中使用POI完成一个excel报表导入数据到MySQL的功能

最近看了自己玩过的很多项目&#xff0c;忽然发现有一个在实际开发中我们经常用到的功能&#xff0c;但是我没有正儿八经的玩过这个功能&#xff0c;那就是在Spring Boot中实现一个excel报表的导入导出功能&#xff0c;这篇博客&#xff0c;主要是围绕excel报表数据导入进行&am…

el-table-column叠加el-popover使用

需求&#xff1a;el-table-column有一列展示多个tag信息&#xff0c;实现点击tag展示tag信息以及tag对应的详细信息 table的数据格式 data:[{...,isPopoverVisible:false,},{...,isPopoverVisible:false,},... ]写法&#xff1a; <el-table-column label"配置信息&q…

Java工程maven中排包exclude的操作

一、背景 在开发项目时依赖了新的jar包&#xff0c;结果工程启动时报错了&#xff0c;此时应该是包依赖冲突的问题。 二、确定冲突的依赖包 执行mvn clean install&#xff0c;通过报错信息来确定冲突的jar包信息 三、排除冲突包的方案 有两种冲突的情况&#xff1a; 1&am…

排序算法。

***冒泡排序: 基本&#xff1a; private static void sort(int[] a){for (int i 0; i < a.length-1; i) {for (int j 0; j < a.length-i-1; j) {if (a[j]>a[j1]){swap(a,j,j1);}}}} private static void swap(int[] a,int i,int j){int tempa[i];a[i]a[j];a[j]temp…

RestClient操作Elasticsearch(Java)

Es官方提供了各种不用语言的客户端&#xff0c;用来操作Es&#xff0c;这些客户端的本质就是组装DSL语句&#xff0c;通过http请求发送给Es&#xff0c;从而简化操作 es基础篇不熟悉参考一下博客&#xff1a;ElasticSearch入门篇-CSDN博客文章浏览阅读445次&#xff0c;点赞7次…

MathType安装导致的Word粘贴操作出现运行时错误‘53’:文件未找到:MathPage.WLL

MathType安装导致的Word粘贴操作出现运行时错误‘53’&#xff1a;文件未找到&#xff1a;MathPage.WLL 解决方案 1、确定自己电脑的位数&#xff1b; 2、右击MathType桌面图标&#xff0c;点击“打开文件所在位置”&#xff0c;然后找到MathPage.WLL &#xff0c;复制一份进行…

docker初始化进程

docker run --init 是一个 Docker 命令的选项&#xff0c;用于在容器中运行一个初始化进程&#xff08;通常是 tini&#xff09;。这个初始化进程负责处理一些 Unix 信号&#xff08;如 SIGTERM 和 SIGCHLD&#xff09;&#xff0c;并确保容器中的进程能够正确地被管理和清理。…

Java学习笔记29(泛型)

1.泛型 ArrayList<Dog> arrayList new ArrayList<Dog>(); //1.当我们ArrayList<Dog>表示存放到ArrayList集合中的元素是Dog类 //2.如果编译器发现添加的类型&#xff0c;不满足要求&#xff0c;就会报错 //3.在便利的时候&#xff0c;可以直接取出Dog类型而…

深入理解JavaScript - Proxy模拟vue的代理

视频链接 ⚠️视频里使用proxy的代码不能用&#xff01;&#xff01;&#xff01; &#xff08;1&#xff09;简单使用 const obj {a: 1,b: 2,c: {a: 1,b: 2,}, }; let v obj.a; Object.defineProperty(obj, "a", {get() {console.log("读取", a);},se…