一、 本节内容
利用寄存器编程编程,实现如下功能:
通过寄存器编程,实现PB22控制G3507开发板蓝灯的亮灭控制
二、MSPM0特点
MSPM0 在保留低功耗特性的同时,在数字、模拟等方面都支持更多功能,并以灵活组合的方式进行集成。
MSPM0 有些产品集成了两个独立12 位ADC,有效位高达11.2,并支持硬件过采至14 位;采样时,速率最高可达4 兆。
MSPM0 内部还集成零漂运算放大器以及跨阻放大器,并且放大器具有分时管脚复用功能,因此可以替代更多的外部运放。
接口方面,MSPM0 集成了CAN-FD 控制,更好满足工业或汽车应用的需求。
内部还集成了硬件数学加速器IP,可直接支持除法,开方,以及反三角函数等计算,以提升MCU 的算力。
三、原理讲解
本次实验使用到四个基础电路,分别是电源电路、复位电路、写入器相连的SWD接口电路和晶振电路。对每个GPIO口进行配置,设置引脚对应的IOMUX寄存器、操作GPIO寄存器、然后操作使能寄存器进行GPIO的使能控制,即可打开GPIO。
寄存器:
IOMUX功能复用寄存器通过数字输入输出(IO) 功能控制所有器件引脚的配置,包括:数字功能选择、反相控制、驱动强度(如果适用)、上拉或下拉电阻(如果适用),以及唤醒配置(如果适用于某些IO,用于从关断模式唤醒)
PF:外设功能选择字段,PC:外设连接
PB22的IOMUX引脚复用:地址:SECCFG.PINCM[49]
pincMX的49可以在数据表的引脚属性中找到:
注意:需要减1,因为数组从0开始计数。
配置输出:
启动输出:
四、软件代码
//1、蓝灯的亮灭控制
int main(void)
{
SYSCFG_DL_init();//外部中断初始化
//PB22 PINDEX=50,number-1
IOMUX->SECCFG.PINCM[49] = 0X80|0X01;//GPIO复用模式选择,PC->1,PF->1
GPIOB->DOUT31_0 = 0X00400000;//set PB22 TO HIGH
while (1) {
GPIOB->DOE31_0 |= (0X01<<22);//PB22 使能打开
delay_cycles(16000000);//32Mhz,time now is half second
GPIOB->DOE31_0 &= ~(0X01<<22); //PB22 使能关闭
delay_cycles(16000000); //32Mhz,time now is half second
}
}
//2、RGB灯的闪亮
int main(void)
{
SYSCFG_DL_init();//外部中断初始化
//PB22 PINDEX=50,PB26 PINDEX=57, PB27 PINDEX=58, number-1
IOMUX->SECCFG.PINCM[49] = 0X80|0X01;//GPIO复用模式选择,PC->1,PF->1
IOMUX->SECCFG.PINCM[56] = 0X80|0X01;
IOMUX->SECCFG.PINCM[57] = 0X80|0X01;
GPIOB->DOUT31_0 = 0X0C400000;//set PB22,26,27 TO HIGH
while (1) {
GPIOB->DOE31_0 |= (0X01<<22); //PB22 使能打开
delay_cycles(16000000);//32Mhz,time now is half second
GPIOB->DOE31_0 &= ~(0X01<<22); //PB22 使能关闭
GPIOB->DOE31_0 |= (0X01<<26); //PB26 使能打开
delay_cycles(16000000); //32Mhz,time now is half second
GPIOB->DOE31_0 &= ~(0X01<<26); //PB26 使能关闭
GPIOB->DOE31_0 |= (0X01<<27); //PB27 使能打开
delay_cycles(16000000); //32Mhz,time now is half second
GPIOB->DOE31_0 &= ~(0X01<<27); //PB27 使能关闭
//GPIOB->DOE31_0 |= (0X01<<22); //PB22 使能打开
}
}
本节介绍了对每个GPIO口进行配置,设置引脚对应的IOMUX寄存器、操作GPIO寄存器、然后操作使能寄存器进行GPIO的使能控制。通过这三个步骤即可实现GPIO的设置。并介绍了寄存器中PC、PF设置不同值时对GPIO的功能和如何实现寄存器控制。
注意:部分PA引脚有占用,建议不要使用PA引脚的GPIO输出输入,详细请看数据手册。
例:PA19、PA20属于烧录引脚 ,没有GPIO功能。
delay_cycles();属于延时函数,参数设置需要看内部振荡器,笔者所用内部振荡器频率为32MHZ,所以参数设置16000000为延时half second.
文章浏览阅读599次,点赞5次,收藏10次。Golang基础6-反射
文章浏览阅读7k次,点赞8次,收藏32次。最近在项目接触了很多在js中调用保存的cookie,是别人在项目的utils.js中保存了不少cookie。大多数保存的是当前登录的用户,和当前的系统,各种常用的id。1、cookie是什么:①、cookie 是存储于访问者计算机中的变量。每当一台计算机通过浏览器来访问某个页面时,那么就可以通过 JavaScript 来创建和读取 cookie。 ②、实际上 cookie 是存于用户硬盘..._js使用cookie登录
文章浏览阅读2.8k次。为规范开发者的用户个人信息处理行为,保障用户的合法权益,自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者,微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则后,方可调用微信提供的隐私接口。开发者首先需确定小程序是否涉及处理用户个人信息,如涉及,则需配置用户隐私授权弹窗,且仅有在平台《小程序用户隐私保护指引》中声明了所处理的用户个人信息,才可以调用平台提供的对应接口或组件。仅有在指引中声明所处理的用户个人信息,才可以调用平台提供的对应接口或组件。_小程序隐私协议开发指南
文章浏览阅读9.2k次。https://download.csdn.net/download/qq_20757489/10868821CefSharp 63版本(X86)编译好的文件支持mp3 mp41.创建winform程序,使用.NET 4.5.2或以上。2.在解决方案上右键->"属性"->"生成"->"目标平台",选择x86,Cef暂不支持"Any CPU"。3.将下载下来的文件解..._cefsharp x86 94.4.5 h.264支持
文章浏览阅读4.7k次,点赞5次,收藏18次。(一) Title论文地址:https://arxiv.org/abs/2111.10780项目地址:https://github.com/lzh420202/FCOSR(二) Summary研究背景:现有的基于anchor-based方法的旋转框检测算法需要手动设置预设框,引入了额外的超参数和计算。基于anchor-free的方法通常具有复杂的体系结构,不容易部署。本文方法:本文提出了一个一阶段的带有角度旋转的检测框架FCOSR,一看就是基于FCOS架构,并且将二维高斯分布也引入进来_fcosr
文章浏览阅读3.2k次。eclipse支持gradle
文章浏览阅读1k次。这个时候将ip文件夹下的sim 和simulation文件夹给到VCS就可以_vivado不支持vcs
文章浏览阅读723次。读取非对齐数据到list,数据填充。可视化,colrbar_多维list展平
文章浏览阅读3.6w次。大家好,我是Mr数据杨。今天,我想让大家跟我一起回到历史的烟云之中,探索“随机森林”的奥秘,其实,这与三国演义中的一段经历颇有相似之处。记得那时曹操曾经在建邺遇到了大问题,他需要找出敌人刘备的真正意图。这就如同在大数据中找寻答案,需要用随机森林这一工具理解并预测未来。这如同曹操手下的谋士郭嘉,用他的聪明才智,协助曹操一步步揭示真相。_随机森林零基础
文章浏览阅读627次,点赞18次,收藏17次。*单片机设计介绍,基于单片机带计分功能的8路抢答器设计。
文章浏览阅读139次。[Menu]AboutGripCodePageSummaryTableCodePageSummarySourceAbout最近开始学习 Bootstrap 将自己的学习进程记录 本文记录关于 Grip 和 Table 这两块GripCode:
文章浏览阅读8.8k次,点赞4次,收藏31次。很多人在问清理垃圾运行命令是什么,接下来小编给大家带来清理垃圾的办法,保证让大家一分钟学会清理垃圾运行命令,从此电脑维护变得轻轻松松。 第一招:清理垃圾 在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:*.tmp、*._mp)日志文件(*.log)、临时帮助文件(*.gid)、磁盘检查文件(*.chk)、临时备份文件(如:*.old、*.bak)以及其他临...