day6 arm

main.c

#include "uartt.h"//封装延时函数void delay(int ms){int i,j;for(i=0;i<ms;i++){for(j=0;j<2000;j++);}}int main(){//串口初始化uart4_init();//灯初始化led_init();//char a;char *s;while(1){myputchar('\n');myputchar('\r');//从串口读取一个字符// a=mygetchar();// myputchar(a+1);s = mygets();//myputs(s);if( mystrcmp(s,"led_on")==0){//开灯led_on();//myputs(s);}if(mystrcmp(s,"led_off")==0){//关灯led_off();//myputs(s);}}return 0;}

uartt.c

#include "uartt.h"char buf[51];
//串口数据初始化
void uart4_init()
{//1.uart和gpiob gpiog的时钟使能RCC->MP_AHB4ENSETR |=(0x1<<2);//使能gpiobRCC->MP_AHB4ENSETR |=(0x1<<6);//使能gpiogRCC->MP_APB1ENSETR |=(0X1<<16);//使能uart4时钟//2.设置pb2和pg11的管脚复用GPIOB->MODER &= (~(0X3<<4));GPIOB->MODER |=(0X2<<4);//设置复用GPIOB->AFRL &=(~(0xF<<8));GPIOB->AFRL |=(0X8<<8);//设置uart4功能复用GPIOG->MODER &= (~(0X3<<22));GPIOG->MODER |=(0X2<<22);//设置复用GPIOG->AFRL &=(~(0xF<<12));GPIOG->AFRL |=(0X6<<12);//设置uart4功能复用//3.先去设置串口禁用,方便设置数据格式USART4->CR1 &=(~0X1);//4.设置8位数据位USART4->CR1 &=(~(0X1<<12));USART4->CR1 &=(~(0X1<<28));//5.设置有没有奇偶校验USART4->CR1 &=(~(0X1<<10));//6.设置16倍采样USART4->CR1 &=(~(0X1<<15));//7.设置1位停止位USART4->CR2 &=(~(0X3<<12));//8.设置1分频USART4->PRESC &=(~(0XF));//9.设置波特率为115200bpsUSART4->BRR |=(0x22B);//10.发送器.接收器使能USART4->CR1 |=(0X1<<3);USART4->CR1 |=(0X1<<2);//11.串口使能USART4->CR1 |=0X1;
}void led_init(){//使能RCC->MP_AHB4ENSETR |=(0XC3<<4);GPIOE->MODER &=(~(0X3<<20));GPIOE->MODER |= (0X1<<20);//设置推挽输出GPIOE->OTYPER &=(~(0X1<<10));//设置输出速度为低速GPIOE->OSPEEDR &=(~(0x3<<20));//设置无上拉下拉GPIOE->PUPDR &=(~(0x3<<20));}void led_on(){GPIOE->ODR |=(0X1<<10);}void led_off(){GPIOE->ODR &=(~(0X1<<10));}
//封装函数发送一个字符数据
void myputchar(char i)
{//1.判断TDR寄存器是否为空,如果为空,向TDR寄存器写入数据//1为不满  0为满while(!(USART4->ISR&(0x1<<7)));USART4->TDR = i;//2.阻塞等待数据传输完成,函数返回//1表示完成 while(!(USART4->ISR&(0X1<<6)));
}char mygetchar()
{char c;//判断RDR寄存器是否有就绪的数据,如果有就读取,没有就等待while(!(USART4->ISR&(0x1<<5)));c = USART4->RDR;return c;
}void myputs(char *s)
{while(*s){myputchar(*s);s++;}myputchar('\n');myputchar('\r');
}char * mygets()
{unsigned int i;for(i=0;i<50;i++){buf[i]=mygetchar();myputchar(buf[i]);if(buf[i]=='\r'){break;}}buf[i]='\0';myputchar('\n');return buf;
}int mystrcmp(char* p,char* q)
{while(*p==*q&&*p!='\0'){p++;q++;}if(*p>*q){return 1;}else if(*p<*q){return -1;}else{return 0;}
} 

uartt.h

#ifndef  __UARTT_H__
#define  __UARTT_H__
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_uart.h"
void uart4_init();
void  led_init();
void myputchar(char i);
char mygetchar();
void myputs(char *s);
char * mygets();
int mystrcmp(char* p,char* q);void led_on();void led_off();#endif

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

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

相关文章

手把手教你反编译小程序

本次实验环境 操作系统: win10 10.0.19042 node: v14.17.0 微信开发者工具: Stable 1.05.2110290 前期准备 在电脑端安装模拟器工具&#xff0c;这里以夜神模拟器为例&#xff0c; 在模拟器中安装微信&#xff1a;用于微信打开小程序时加载小程序包。在模拟器中文件管理器&…

论文笔记:A review on multi-label learning

一、介绍 传统的监督学习是单标签学习&#xff0c;但是现实中一个实例可能对应多个标签。这篇文章介绍了多标签分类的定义和评价指标、多标签学习的算法还有其他相关的任务。 二、问题相关定义 2.1 多标签学习任务 假设 X R d X R^d XRd&#xff0c;表示d维的输入空间&am…

面试经典150题(10-13)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天&#xff08;第四天&#xff09;完成了4道(10-13)150&#xff1a; 10. &#xff08;45. 跳跃游戏 II&#xff09;题目描述&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[…

日本服务器:确保其稳定性的几个要点

​  在租用日本服务器时&#xff0c;用户们大多一定会关注它的稳定性&#xff0c;其实这些顾及都是正常的。毕竟&#xff0c;网站要想正常运行&#xff0c;保障服务器稳定是关键。本文将讨论有关如何保障日本服务器稳定性的一些有用技巧&#xff0c;希望对您有所帮助。 1.注重…

Linux定时循环备份指定文件或文件夹,每月永久备份留1份

备份需求&#xff1a;每天完成一次指定文件的备份&#xff0c;压缩后存放到指定目录 问题&#xff1a;备份时间长了以后占用空间较大&#xff0c;浪费存储&#xff0c;实际历史备份意义不大&#xff0c;并不需要永久保存。但是如果直接删除可能导致无法恢复历史状态的数据。 …

SpringBoot 启动加载器解析

计时器介绍 启动加载器实战 实现方式1 实现CommandLineRunner接口重写run方法通过Order进行排序 示例: Component Order(1) public class FirstCommandlineRunner implements CommandLineRunner {Overridepublic void run(String... args) throws Exception {System.out.pr…

一篇上手机器学习

一、上手机器学习的几个阶段 上手机器学习&#xff0c;第一步当然是看完我的这篇文章啦~&#xff0c;然后就按以下步骤来就可以了&#xff1a; 学习Python编程语言&#xff1a;Python是一种易于学习的高级编程语言&#xff0c;广泛应用于机器学习领域。你可以通过学习Python的…

第三节、项目支付功能实战-微信支付平台接入流程,小程序账号注册、商户注册

简介 本篇介绍小程序的注册流程、商户平台的注册流程、以及小程序和商户平台如何进行绑定。 微信小程序注册 由于项目中使用了小程序进行支付&#xff0c;所以首先来注册小程序。小程序注册网站如下&#xff1a;小程序注册地址 小程序账号注册 1、链接页面点击“前往注册”…

carla安装中的问题

1、carla carla安装完后&#xff0c;需要使用python调用API去更换地图&#xff0c;增加车辆等 使用Python调用API过程中可能会报错&#xff1a; 报错1&#xff1a;carla API&#xff08;Carla包&#xff09;版本不对 **解决方法&#xff1a;**需要将这个目录下的三个文件拷…

数学建模算法

算法部分 1. 评价类模型2. TOPSIS3. 线性规划4. 聚类分析5. 预测模型6. 拉伊达准则(对异常值进行剔除)7. 数据拟合8. 图论代码练习1. 模拟圆周率2. 斐波那契数列3. 四只鸭子落在一个圆中概率4. 方程2: y" uy y,初值y(0) 1,y(0) 0 算法讲解 matlab代码大全 1. 评价类模型…

【Python】修改pip 默认安装位置

使用pip安装的时候&#xff0c;一般是默认安装在c盘里的。这样做很容易会让c盘的文件堆满。那么如何让pip安装的包放入d盘呢&#xff1f; 查看pip默认安装的位置 在cmd里输入python -m site&#xff0c;这里可以看到&#xff0c;安装包会默认下载到c盘中 从这里可以看到&am…

【Spring教程15】Spring框架实战:详解解读AOP的工作流程和AOP的核心概念

目录 1 AOP工作流程2 AOP核心概念 欢迎大家回到《 Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0c;如果您对Maven还很陌生&#xff0c;请移步本人的博文《 如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》&#xff0c;本文…

如何使用cpolar+Inis在Ubuntu系统快速搭建本地博客网站公网可访问

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

AspNetCore 中使用 Knife4jUI 更加友好的Swagger界面

&#x1f680;介绍 aspnetcore.knife4j是一个基于.NET Core平台的Swagger UI库&#xff0c;它提供了API文档的生成和管理功能。这个库的前身是swagger-bootstrap-ui&#xff0c;在Java项目中广泛使用&#xff0c;由于其优秀的界面和易用性被许多开发者所推崇。现在&#xff0c…

LV.13 D2 开发板启动流程 学习笔记

一、开发板启动过程 EMMC&#xff1a;相当于电脑的外存&#xff0c;断电不丢失 开发板上电后首先运行SOC内部iROM中固化的代码(BL0)&#xff0c;这段代码先对基本的软硬件环境(时钟等...)进行初始化&#xff0c;然后再检测拨码开关位置获取启动方式&#xff0c;然后再将对应存储…

基于SSM+MySQL学生宿舍管理系统的设计与实现(源码+数据库+文档)

摘 要 近年来&#xff0c;随着计算机技术的不断发展和运用&#xff0c;许多实际问题都得到了较好地解决。随着现代社会对企业经营的需求日益增长&#xff0c;企业的无纸办公也逐渐得到了推广。本学生宿舍管理系统的设计开发&#xff0c;目标就是解决宿舍管理复杂的人为管理&a…

PHP变量用{}的使用方法

{} 可以将变量名称作为一个整体使用 "666666".$id."888888"; //可以简化为如下 "666666{$id}888888"; //当然$id也可以用$ids[$id] 参考&#xff1a; PHP 大括号{} 的使用_php 函数放在{}-CSDN博客

[23] Self-conditioned Image Generation via Generating Representations

[paper | code] 用生成对象本身作为控制信号&#xff0c;实现无条件图像生成。训练阶段。Step1&#xff1a;用预训练模型&#xff08;例如&#xff1a;Moco v3&#xff09;提取生成对象的特征编码&#xff1b;Step2&#xff1a;基于特征编码&#xff0c;训练一个扩散模型RDM&a…

pycharm手动安装包

1.下载对应的包 TTS PyPI 2.手动解压&#xff0c;找到文件放到pycharm对应项目的lib文件夹中 以TTS包为例&#xff0c;找到下载并解压的包中的2个文件&#xff0c;一个名称一个info结尾 3.放到项目的lib文件夹中 eg&#xff1a;路径&#xff1b;C:\doc\myProject\speaker\venv…

前端知识(十四)——浅谈用户体验测试的主要功能

用户体验(User Experience&#xff0c;简称UX)在现代软件和产品开发中变得愈发重要。为了确保产品能够满足用户期望&#xff0c;提高用户满意度&#xff0c;用户体验测试成为不可或缺的环节。本文将详细探讨用户体验测试的主要功能&#xff0c;以及它在产品开发过程中的重要性 …