gpio的使用----->4412的裸机的使用(第三节)

news2024/9/23 23:24:37

这一节主要是 4412 的裸机的使用

0 4412 的硬件原理图+ 数据手册

然后是数据手册的解析:

每一组都有这几个 寄存器。

需要注意:

 1、 4412 的中断是 与输入,输出在同一个级别的,与stm32不同。

2、 我是在uboot 上进行编程的,所以没有设置时钟,因为uboot 已经设置好了。

1 汇编语言的编写。

  1 .globl _start
  2 .arm
  3 _start:                    
  4     LDR R0,=0x11000100             这是con 寄存器
  5     LDR R1,[R0]
  6     BIC R1,R1,#0x0000000f          这是将最后4个字节清零
  7     ORR R1,R1,#0x00000001          这是将最后4个字节置一,就是设置为输出模式。
  8     STR R1,[R0]
  9 loop:
 10     LDR R0,=0x11000104            这是data寄存器地址。
 11     LDR R1,[R0]
 12     ORR R1,R1,#0x1                将data寄存器最后一位设置为1 ,也就是输出1
 13     STR R1,[R0]
 14     BL delay                      这是一个延时函数。
 15     LDR R1,[R0]
 16     BIC R1,R1,#0x1                 这是将data寄存器最后一位 置位0,输出低电平。
 17     STR R1,[R0]
 18     BL delay
 19     B loop
 20 delay:
 21     LDR R2,=0xfffffff              首先给R2 一个很大的数。
 22 loop1:
 23     SUB R2,R2,#0x1
 24     CMP R2,#0x0
 25     BNE loop1                      减到0 之后,才会推出这个循环。
 26     MOV PC,LR                       回到调用函数的地方。
 27 .end
 28
~
~
~

我在板子上测试是可以的。

2 C语言的编写

  8 typedef struct {
  9                 unsigned int CON;
 10                 unsigned int DAT;
 11                 unsigned int PUD;
 12                 unsigned int DRV;
 13 }gpl2_0;
 14 #define GPL2_0 (* (volatile gpl2_0 *)0x11000100 )
 15 /* GPL2 */
 16 typedef struct {
 17                 unsigned int CON;
 18                 unsigned int DAT;
 19                 unsigned int PUD;
 20                 unsigned int DRV;
 21 }gpk1_1;
 22 #define GPK1_1 (* (volatile gpk1_1 *)0x11000060 )
 23
 24
 25
 26
 27
 28
 29 void led_init(void)
 30 {
 31     GPK1_1.CON = (GPK1_1.CON & (~(0xf <<4))) | (0x1<<4);
 32     //GPK1.PUD = GPK1.PUD | 0x05;
 33
 34     GPL2_0.CON = (GPL2_0.CON & (~(0xf<<0))) | (0x1<<0);
 35     //GPL2.PUD = GPL2.PUD | 0x5;
 36 }
 37
 38
 39
 40 void led_on()
 41 {
 42     GPK1_1.DAT = GPK1_1.DAT|(0x1<<1);
 43     GPL2_0.DAT = GPL2_0.DAT|(0x1<<0);
 44 }
 45
 46
 47
 48 void led_off()
 49 {
 50     GPK1_1.DAT = GPK1_1.DAT&(~(0x01<<1));
 51     GPL2_0.DAT = GPL2_0.DAT&(~(0x01<<0));
 52 }
 53
 54
 55
 56
 57 void  delay_ms(unsigned int num)
 58 {
 59     int i,j;
 60     for(i=num; i>0;i--)
 61         for(j=1000;j>0;j--)
 62         ;
 63 }




8 int main(void)
 69 {
 70     int i = 0;
 71     led_init ();
 72
 73     #if 1
 74     while (1) {
 75         led_on();
 76         delay_ms(500);
 77         led_off();
 78         delay_ms(500);
 79     }
 80     #endif
 81     while(1);
 82     return 0;
 83 }
 84
 85
 86


这份代码也是可以运行的。

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

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

相关文章

重头开始嵌入式第二十二天(Linux系统编程 进程)

进程 目录 进程 1.进程的概念 2.PCB&#xff08;process control block&#xff09; 3.进程和程序有什么区别&#xff1f; 4.进程的内存分布 5.进程的分类 守护进程 6.进程的作用 7.进程的状态 8.进程的调度 9.查询进程的相关指令 1.ps aux 2.top 3.kill和killa…

12 Text 组件

12 Text 组件 Tkinter 是 Python 的标准 GUI 库&#xff0c;而 Text 组件是其中用于显示和编辑多行文本的控件。以下是对 Text 组件的详细说明和一个使用案例。 Text 组件属性 基本属性 width: 文本框的宽度&#xff0c;通常以字符数为单位。height: 文本框的高度&#xff…

亚世光电:消费电子年度表演

机圈风云再起&#xff0c;消费电子乘风而起&#xff1f; 今天我们来聊——亚世光电 最近&#xff0c;华为mate60突然降价&#xff0c;被大家怀疑是为新品上市做准备&#xff0c;算算时间&#xff0c;下半年的消费电子大战也即将拉开帷幕&#xff0c;而亚世光电所在的光电显示领…

sklearn-线性回归

文章目录 一、sklearn-线性回归介绍二、线性回归1.一元线性回归2.多元线性回归模型3.最小二乘法 三、一元线性回归应用1.导入库2.绘制散点图3.建立回归模型并进行训练4.模型评估与数据查看5.模型测试 四、多元线性回归应用1.导入库2.计算相关性3.数据预处理4.训练评估模型5.模型…

iOS 18.1 Beta 2评测:新变化与体验升级

苹果公司近日向开发者推送了iOS 18.1 Beta 2更新&#xff0c;这一版本基于beta1版本进行多个方面优化和改进&#xff0c;为用户带来了更加流畅和个性化的使用体验。作为一位热衷于体验新系统的用户&#xff0c;小编也是第一时间升级了Beta 2版本&#xff0c;并对其进行了全面的…

Java二十三种设计模式-状态模式(20/23)

本文深入探讨了状态模式&#xff0c;一种允许对象根据其内部状态变化而改变行为的软件设计模式。文章从定义、组成部分、实现方式、使用场景、优缺点分析、与其他模式的比较&#xff0c;到最佳实践和建议&#xff0c;全面介绍了状态模式的各个方面。通过Java语言的实现示例和实…

2024前端面试题-篇章一(个人向)

1.vue2生命周期&#xff08;省略&#xff09; 2.vue3生命周期&#xff08;省略&#xff09; 3.vue2页面生命周期与组件生命周期执行顺序&#xff1a; 一般是 页面先创建&#xff0c;然后准备再准备挂载&#xff0c;挂载的时候发现有组件再执行组件的生命周期&#xff0c;组件…

数字影像技术是如何改变我们看待世界的方式呢?

在当今的科技时代&#xff0c;数字影像技术正以惊人的速度改变着我们的生活和视觉体验。那么&#xff0c;什么是数字影像技术呢&#xff1f; 数字影像技术是指通过数字化手段对图像和视频进行获取、处理、存储、传输和展示的一系列技术。 它利用各种数字设备&#xff0c;如数…

msf+proxychains组合搭建socks5隧道 | 内网穿透

实验环境 网络拓扑&#xff1a; kali&#xff1a; VMnet1&#xff08;公网&#xff09;192.168.52.134 win10&#xff1a; VMnet1&#xff08;公网&#xff09;192.168.52.135VMnet2&#xff08;内网&#xff09;192.168.72.133 win2008&#xff1a; VMnet2&#xff08…

【数据结构初阶】二叉树--基本概念

hello&#xff01; 目录 一、树 1.1 树的概念和结构 1.2 树的相关术语 1.3 树的表示 1.4 树形结构实际应用场景 二、二叉树 2.1 概念和结构 2.2 特殊的二叉树 2.2.1 满二叉树 2.2.2 完全二叉树 2.3 二叉树的存储结构 2.3.1 顺序结构 2.3.2 链式结构 …

转行到大模型,完整版攻略从大模型零基础到大模型精通,我是这样过来的

在当今这个日新月异的时代&#xff0c;技术的更新迭代速度远超我们的想象。对于那些渴望在职业生涯中寻求新挑战的人来说&#xff0c;转向人工智能领域&#xff0c;尤其是投身于大规模语言模型的研究与开发&#xff0c;无疑是一个充满机遇的选择。本文将为您揭示如何从零开始&a…

阿里十万卡训练集群 网络拓扑架构和优势 Alibaba HPN: A Data Center Network for Large Language Model Training

本博客的视频教程在这&#xff1a; 2.2阿里十万卡集群 网络拓扑架构和优势 Alibaba HPN: A Data Center Network for Large Language Model_哔哩哔哩_bilibili 一、大模型训练的核心问题 1.1 流量模式的问题 大语言模型训练的流量模式问题可参考这个&#xff1a; ECMP等价…

Linux 服务器下非root用户安装CUDA完整流程(多次踩雷经验总结)

参考博客&#xff1a; linux下安装cuda和cudnn&#xff08;非root权限&#xff09;_cuda下载安装 远程服务器 linux-CSDN博客 Linux下非root用户安装CUDA_linux下cuda-toolkit-archive-CSDN博客 非root用户安装cuda10.1&#xff0c;以及CUDA不同版本间切换_非root用户.run文…

已解决centos7 yum报错:cannot find a valid baseurl for repo:base/7/x86_64的解决方案

出现cannot find a valid baseurl for repo:base/7/x86_64错误通常是由于YUM仓库源无法找到或无法访问&#xff0c;导致YUM无法正常工作。这种情况常见于CentOS 7系统。解决这个问题需要检查几个方面&#xff0c;如网络连接、DNS设置和YUM仓库源配置。 &#x1f9d1; 博主简介&…

aspose-words中插入附件及遇到的问题

aspose-words版本&#xff1a;21.1 java&#xff1a;1.8 目标&#xff1a; 前端使用tinymce编辑一段内容&#xff0c;后端使用aspose-words将html转为word&#xff0c;并将html中的附件转换为word中的附件。 形如&#xff1a; 实现方案&#xff1a; 使用正则表达式找出需要替…

setData的 Qt::CheckStateRole是model中checkbox的状态(选中否)

checkbox的状态 bool MissionModel::setData(const QModelIndex &index, const QVariant &value, int role) { if (role Qt::CheckStateRole && col 3 ) { } }

【嵌入式裸机开发】基于stm32的照相机(OV7670摄像头、STM32、TFTLCD)

基于STM32的照相机 准备工作最终效果一、下位机1、主函数2、OV7670初始化 二、上位机1、控制拍照2、接收图片数据 准备工作 一、硬件及片上资源: 1,串口1(波特率:921600,PA9/PA10通过usb转ttl连接电脑&#xff0c;或者其他方法)上传图片数据至上位机 2,串口2(波特率:115200,PA…

Opencv学习-直方图应用

1. 直方图均衡化 如果一个图像的直方图都集中在一个区域&#xff0c;那么整体图像的对比度比较小&#xff0c;不便于图像中纹理的识别。例如&#xff0c;如果相邻的两个像素灰度值分别是 120 和 121 &#xff0c;那么仅凭肉眼是无法区别出来的。同时&#xff0c;如果图像中所…

音频提取软件分享:6款好用音频提取工具推荐

在现代数字媒体中&#xff0c;音频提取已经成为一项至关重要的技能。无论你是视频创作者、播客主持人&#xff0c;还是音乐爱好者&#xff0c;从视频、电影或其他多媒体文件中提取音频&#xff0c;都是一项非常有用的操作。 本文将围绕音频提取&#xff0c;介绍这项技术的应用、…

一篇文章带你实现大模型及RAG入门---小白速进

项目概述&#xff1a;随着人工智能技术的飞速发展&#xff0c;大模型&#xff08;Large Models&#xff09;和检索增强型生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;已成为自然语言处理&#xff08;NLP&#xff09;领域的热点。大模型以其强大的理解和生…