[MSP-EXP432P401R] MSP432P401R独立按键

[复制链接]

1

主题

2

帖子

114

积分

二氧化硅

Rank: 2

积分
114
楼主
查看: 4902回复: 3 发表于 2021-4-27 23:37:18   只看该作者
第1题:基本的按键操作(如独立按键/4x4矩阵按键等),能完成基本的按键操作。
1.完整硬件的照片
2.引脚连接图等电路图
3.工程源代码(建议直接上传整个工程)
4.如果键盘使用了驱动芯片,则要上传驱动芯片的手册等资料
*********************************************************************************************************
1.硬件照片


MSP432P401R
设置S1——P1.1作为输入,用LED1——P1.0作为输出


功能描述:led1一开始以高频闪烁,按下s1按键之后,led1以较慢的频率闪烁,再按下s1按键之后,led1恢复高频闪烁。


2.原理图
p1.0原理图

s1(p1.1)原理图


3.工程源代码
单片机型号:MSP-EXP432P401R Launchpad
开发环境:   Code Composer Studio 10.1.1








#include"stdint.h"
#include"stdbool.h"
#include"ti/devices/msp432p4xx/driverlib/driverlib.h"


volatile uint32_t frequency=5000;//设置两个全局变量,便于后续在主函数和中断函数中进行修改

volatile uint32_t counter=0;

void main(void)
{
    volatile uint32_t ii;

    MAP_WDT_A_holdTimer();//关闭看门狗

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);//设置led p1.0 亮

    MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1);//设置P1.1为上拉电阻


    MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN1);
    MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1);
    MAP_Interrupt_enableInterrupt(INT_PORT1);
    MAP_Interrupt_enableMaster();

    //关于中断的一系列设置,先清除中断标记,再打开P1.1的中断开关,再打开PORT1的中断开关,最后打开中断的总开关


    MAP_SysCtl_enableSRAMBankRetention(SYSCTL_SRAM_BANK1);




    while (1)
    {

        for (ii = 0; ii < frequency; ii++)
        {

        }
        MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
        //输出按一定频率取反,实现led的闪烁




    }


}
void PORT1_IRQHandler(void)//中断函数
    {
       uint32_t status;

       status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1);
       MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, status);

       //获取中断状态,若出现中断,则先清除中断标记,再进行下一步操作
        counter++;
        if(counter>100)
        {
            counter=1;
        }
        //当counter太大时,使其变小
        if(counter%2==0)
        {
            frequency=5000;

        }
        else
            frequency=15000;
        //当counter为偶数时,取frequency为5000,当counter为奇数时,取frequency为15000,如此实现不同频率的led闪烁

    }


4.遇到的糟心的问题


编译时出现了这个问题,困扰了我好久,最后在网上查了查,又自己研究了一下,才解决
解决方法:
1.


右键项目文件,选择最下方的properties
2.

如图所示,添加新的地址

3.

我的地址是C:\ti\simplelink_msp432p4_sdk_3_40_01_02\source

但是不同的电脑情况略有不同,地址路径大同小异,建议研究研究,一般最后的地址都是source



小白第一次写帖子,若有不正确的地方,还望大家包涵与指正。
Problem 1.rar (103.24 KB, 下载次数: 16)

打赏

参与人数 1赫兹币 +1 收起 理由
电赛狗熊 + 1 赞一个!

查看全部打赏

1

主题

12

帖子

1

积分

一粒轻沙

Rank: 1

积分
1
沙发
发表于 2021-10-30 19:57:04   只看该作者
四旋翼飞行器入门-

1

主题

12

帖子

1

积分

一粒轻沙

Rank: 1

积分
1
板凳
发表于 2021-10-30 20:00:23   只看该作者
四旋翼飞行器入门-

0

主题

2

帖子

75

积分

一粒轻沙

Rank: 1

积分
75
4#
发表于 2022-7-26 09:26:43   只看该作者
学软件的我参加比赛,表示看不懂了
快速回复 返回顶部 返回列表