[MSP-EXP432E401Y] MSP432E401Y独立按键+SSH1106屏幕显示

[复制链接]

3

主题

6

帖子

310

积分

二氧化硅

Rank: 2

积分
310
楼主
查看: 5338回复: 3 发表于 2021-4-24 23:32:18   只看该作者
* 简述: 使用MSP432E4演示OLED128x64屏的基本显示。
* 板卡: MSP_EXP432E401Y
* CCS IDE版本: CCS 10.1.1
* 功能: 程序下载后按板载的 USR_SW1 按鍵切换显示内容
* 硬件: SSH1106主控的OLED128x64屏(软件IIC)
* 引脚连接:
*                MSP432E401Y
*             ------------------
*         /|\|               PE4|--> OLED_SCLK
*          | |               PC4|--> OLED_DAT
*          --|RST               |
*            |                  |
*            |               PJ0|<-- USR_SW1
*            |                  |
*            |               PN0|--> LED D2
*            |               PN1|--> LED D1

按键说明:


显示2021:


显示小数8.4:


显示NUEDC Contest:


显示汉字"全国大学生电子设计竞赛培训网":


显示电赛logo:


显示ti logo:


显示额外信息:


在主函数里开机上电后对外设进行初始化,按下左侧按键key_cnt加一,按下右侧按键key_cnt减一,并显示对应内容。按键采用外部中断处理。
main.c:
  1. #include <ti/devices/msp432e4/driverlib/driverlib.h>
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #include "oled.h"
  5. #include "bmp.h"

  6. volatile uint32_t gpioState = 0;
  7. uint8_t key_cnt = 0;
  8. uint8_t oled_clear_flag = 0; //在按键切换显示内容后清屏

  9. void GPIOInit(void);
  10. void SysTick_Handler(void);
  11. void GPIOJ_IRQHandler(void);
  12. int main(void)
  13. {

  14.     OLED_Init();  //初始化OLED
  15.     OLED_Clear(); //OLED清屏

  16.     while (1)
  17.     {
  18.         if (oled_clear_flag == 1)
  19.             OLED_Clear();
  20.         oled_clear_flag = 0;
  21.         switch (key_cnt)
  22.         {
  23.         case 1:
  24.             OLED_ShowString(48, 2, "2021");
  25.             break;

  26.         case 2:
  27.             OLED_ShowString(48, 2, "8.4");
  28.             break;

  29.         case 3:
  30.             OLED_ShowString(16, 2, "NUEDC Contest");
  31.             break;

  32.         case 4:
  33.             OLED_ShowCHinese(0, 2, 0);    //全
  34.             OLED_ShowCHinese(18, 2, 1);   //国
  35.             OLED_ShowCHinese(36, 2, 2);   //大
  36.             OLED_ShowCHinese(54, 2, 3);   //学
  37.             OLED_ShowCHinese(72, 2, 4);   //生
  38.             OLED_ShowCHinese(90, 2, 5);   //电
  39.             OLED_ShowCHinese(108, 2, 6);  //子
  40.             OLED_ShowCHinese(0, 4, 7);    //设
  41.             OLED_ShowCHinese(18, 4, 8);   //计
  42.             OLED_ShowCHinese(36, 4, 9);   //竞
  43.             OLED_ShowCHinese(54, 4, 10);  //赛
  44.             OLED_ShowCHinese(72, 4, 11);  //培
  45.             OLED_ShowCHinese(90, 4, 12);  //训
  46.             OLED_ShowCHinese(108, 4, 13); //网
  47.             break;

  48.         case 5:
  49.             OLED_DrawBMP(0, 0, 128, 8, BMP1); //1电赛徽章图片显示
  50.             break;

  51.         case 6:
  52.             OLED_DrawBMP(0, 0, 128, 8, BMP4); //4TI标志图片显示
  53.             break;

  54.         case 7:
  55.             OLED_ShowString(8, 0, "https://www.");
  56.             OLED_ShowString(8, 2, "nuedc-training.");
  57.             OLED_ShowString(8, 4, "com.cn/");
  58.             break;

  59.         default:
  60.             OLED_Clear();
  61.         }
  62.     }
  63. }
  64. //Gpio初始化程序
  65. void GPIOInit(void)
  66. {
  67. ...
  68. }
  69. //系统定时器中断处理程序,用于控制LED2指示灯
  70. void SysTick_Handler(void)
  71. {
  72.     if (gpioState != 3)
  73.         gpioState++;
  74.     else
  75.         gpioState = 0;
  76.     /* 将GPIO的新值写入端口引脚。 API将生成位带区地址,以写入特定的端口引脚*/
  77.     MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, gpioState); //LED2亮灭
  78. }
  79. //GPIOJ中断处理,按键SW1触发
  80. void GPIOJ_IRQHandler(void)
  81. {
  82. ...
  83.     if ((key_cnt < 1) || (key_cnt > 7))
  84.         key_cnt = 0;
  85. }
复制代码





SSH1106_MSP_EXP432E401Y.zip

5.13 MB, 下载次数: 125, 下载积分: 积分 -1

打赏

参与人数 3赫兹币 +7 收起 理由
changzhuohua + 1 很给力!
blueblues + 3
JTao + 3

查看全部打赏

73

主题

469

帖子

1007

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1007
沙发
发表于 2021-4-27 13:55:31   只看该作者
感谢分享~

0

主题

1

帖子

6

积分

一粒轻沙

Rank: 1

积分
6
板凳
发表于 2022-7-1 23:54:27   只看该作者

1
111111111111111111111111111

0

主题

2

帖子

78

积分

一粒轻沙

Rank: 1

积分
78
4#
发表于 2023-7-14 14:36:38   只看该作者
感谢分享
快速回复 返回顶部 返回列表