当前位置: 首页 > news >正文

云南学校 手机网站建设网站友情链接的作用

云南学校 手机网站建设,网站友情链接的作用,wordpress写入权限,室内设计装修图1.功能说明 本设计主要是利用STM32驱动矩阵薄膜键盘,当按下按键后OLED显示屏上会对应显示当前的按键键值,可以将此设计扩展做成电子秤、超市收银机、计算器等需要多个按键操作的单片机应用。 2.硬件接线 模块管脚STM32单片机管脚矩阵键盘行1PA0矩阵键盘…

1.功能说明

        本设计主要是利用STM32驱动矩阵薄膜键盘,当按下按键后OLED显示屏上会对应显示当前的按键键值,可以将此设计扩展做成电子秤、超市收银机、计算器等需要多个按键操作的单片机应用。

2.硬件接线

模块管脚STM32单片机管脚
矩阵键盘行1PA0
矩阵键盘行2PA1
矩阵键盘行3PA2
矩阵键盘行4PA3
矩阵键盘列1PA4
矩阵键盘列2PA5
矩阵键盘列3PA6
矩阵键盘列4PA7
0.96寸OLED显示屏SCLPB6
0.96寸OLED显示屏SSDAPB7

3.软件代码

 

// 定义字符型的4x4矩阵薄膜键盘映射表
char key_map[4][4] = {{'1', '2', '3', 'A'},{'4', '5', '6', 'B'},{'7', '8', '9', 'C'},{'*', '0', '#', 'D'}
};// IO端口结构体定义,用于描述GPIO端口和针脚
struct IO_PORT
{                                            GPIO_TypeDef *GPIO_x; // GPIO端口地址                 unsigned short GPIO_pin; // GPIO端口的针脚
};// 定义行输出的GPIO端口和针脚数组
static struct IO_PORT KEY_OUT[4] = {{BUTTON_ROW1_GPIO_PORT, BUTTON_ROW1_GPIO_PIN},{BUTTON_ROW2_GPIO_PORT, BUTTON_ROW2_GPIO_PIN},{BUTTON_ROW3_GPIO_PORT, BUTTON_ROW3_GPIO_PIN}, {BUTTON_ROW4_GPIO_PORT, BUTTON_ROW4_GPIO_PIN}
};// 定义列输入的GPIO端口和针脚数组
static struct IO_PORT KEY_IN[4] = {{BUTTON_COL1_GPIO_PORT, BUTTON_COL1_GPIO_PIN}, {BUTTON_COL2_GPIO_PORT, BUTTON_COL2_GPIO_PIN},{BUTTON_COL3_GPIO_PORT, BUTTON_COL3_GPIO_PIN}, {BUTTON_COL4_GPIO_PORT, BUTTON_COL4_GPIO_PIN}
};// 定义键盘扫描状态数组
unsigned char key[4][4];// 初始化4x4键盘的函数
void Button4_4_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;unsigned char i;RCC_APB2PeriphClockCmd(BUTTON_GPIO_CLK, ENABLE); // 使能GPIO时钟// 初始化行输出端口for(i=0;i<4;i++){GPIO_InitStructure.GPIO_Pin = KEY_OUT[i].GPIO_pin;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 设置为推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(KEY_OUT[i].GPIO_x, &GPIO_InitStructure);}// 初始化列输入端口for(i=0;i<4;i++){GPIO_InitStructure.GPIO_Pin = KEY_IN[i].GPIO_pin;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 设置为输入上拉GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(KEY_IN[i].GPIO_x, &GPIO_InitStructure);}// 设置行输出高电平,准备扫描for(i = 0; i < 4; i++){GPIO_SetBits(KEY_OUT[i].GPIO_x, KEY_OUT[i].GPIO_pin);}
}// 扫描4x4键盘的函数
char Button4_4_Scan(void)
{unsigned char i, j;for(i = 0; i < 4; i++){delay_ms(5); // 延时以稳定信号GPIO_ResetBits(KEY_OUT[i].GPIO_x, KEY_OUT[i].GPIO_pin); // 将当前行置低,检测按键for(j = 0; j < 4; j++){delay_ms(5); // 再次延时if(GPIO_ReadInputDataBit(KEY_IN[j].GPIO_x, KEY_IN[j].GPIO_pin) == 0) // 读取列状态,如果为低,则按键被按下{key[i][j] = 1; // 记录按键状态GPIO_SetBits(KEY_OUT[i].GPIO_x, KEY_OUT[i].GPIO_pin); // 恢复当前行高电平return key_map[i][j]; // 返回按键对应的字符}else{key[i][j] = 0;}}GPIO_SetBits(KEY_OUT[i].GPIO_x, KEY_OUT[i].GPIO_pin); // 恢复当前行高电平}return 0; // 如果没有按键被按下,返回0或可以选择返回一个特定的字符表示无输入
}

4.获取源码方式

https://download.csdn.net/download/weixin_41011452/90338338

http://www.hkea.cn/news/396010/

相关文章:

  • 装酷网装修平台东莞seo外包
  • 专门做图片的网站吗如何建网站要什么条件
  • 卢氏县住房和城乡建设局网站站长统计 站长统计
  • 济南 网站制作旺道营销软件
  • 新上线网站如何做搜索引擎站长素材网站
  • 做网站编辑深圳疫情防控最新消息
  • PHP网站开发项目式教程google下载手机版
  • 国外专门用于做网站图片的做网站要多少钱
  • 网站维护费用计入什么科目媒介星软文平台官网
  • 网站建设seo 视频做网站哪个平台好
  • 旅行社网站建设方案论文百度seo公司
  • 长沙网站建设与维护百度开户联系方式
  • 做pcr查基因序列的网站南京百度网站快速优化
  • 数据服务网站策划方案关键词快速优化排名软件
  • 响应式网站缺点学大教育培训机构电话
  • 江苏天德建设工程有限公司网站一个平台怎么推广
  • 石家庄做网络推广的网站推广平台收费标准
  • 贵阳天柱网站建设招聘域名注册平台有哪些
  • 网站建设电话营销百度问一问官网
  • 网站优化建设河南怎么关闭seo综合查询
  • 自贡做响应式网站开发公司google搜索引擎入口google
  • 东莞哪种网站推广好微信朋友圈推广文案
  • 现在学做网站赚钱吗东莞市优速网络科技有限公司
  • 宁津做网站公司宣传推广图片
  • 陕西的建设厅官方网站数据分析报告
  • 企业网站建设的定位互联网
  • 注册域名之后如何做网站优化清理大师
  • wordpress+在线播放推广seo网站
  • 丽水网站建设明恩玉杰网站开发框架
  • 如何设计网站中的上传功能搜索引擎技术基础