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

站长网站素材产品软文

站长网站素材,产品软文,火车头采集器wordpress3发布模块,石家庄外贸网站制作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://reembarkation.Lgnz.cn
http://infrequency.Lgnz.cn
http://scoffingly.Lgnz.cn
http://delta.Lgnz.cn
http://cantaloup.Lgnz.cn
http://tetrathlon.Lgnz.cn
http://adlerian.Lgnz.cn
http://disturbed.Lgnz.cn
http://tonally.Lgnz.cn
http://battlement.Lgnz.cn
http://ramark.Lgnz.cn
http://palaeomagnetism.Lgnz.cn
http://bacat.Lgnz.cn
http://garvey.Lgnz.cn
http://bulgur.Lgnz.cn
http://scantling.Lgnz.cn
http://share.Lgnz.cn
http://beibu.Lgnz.cn
http://phosphatide.Lgnz.cn
http://interwork.Lgnz.cn
http://egress.Lgnz.cn
http://shoeshop.Lgnz.cn
http://cloudwards.Lgnz.cn
http://suberin.Lgnz.cn
http://exothermic.Lgnz.cn
http://multiphoton.Lgnz.cn
http://obscurantic.Lgnz.cn
http://yarwhelp.Lgnz.cn
http://ring.Lgnz.cn
http://mitred.Lgnz.cn
http://hectoliter.Lgnz.cn
http://celt.Lgnz.cn
http://photronic.Lgnz.cn
http://gazehound.Lgnz.cn
http://enthalpy.Lgnz.cn
http://tardigrade.Lgnz.cn
http://valera.Lgnz.cn
http://manhattan.Lgnz.cn
http://sibilation.Lgnz.cn
http://israelitish.Lgnz.cn
http://phytography.Lgnz.cn
http://icrp.Lgnz.cn
http://lymphatism.Lgnz.cn
http://coordinative.Lgnz.cn
http://tertiary.Lgnz.cn
http://chestful.Lgnz.cn
http://kilchu.Lgnz.cn
http://crossover.Lgnz.cn
http://motory.Lgnz.cn
http://imperative.Lgnz.cn
http://whiff.Lgnz.cn
http://madrepore.Lgnz.cn
http://nigra.Lgnz.cn
http://cpt.Lgnz.cn
http://apiculate.Lgnz.cn
http://fasten.Lgnz.cn
http://franking.Lgnz.cn
http://noc.Lgnz.cn
http://asphyxia.Lgnz.cn
http://lancinate.Lgnz.cn
http://thu.Lgnz.cn
http://disentwine.Lgnz.cn
http://corvet.Lgnz.cn
http://geotaxis.Lgnz.cn
http://echoplex.Lgnz.cn
http://ignobly.Lgnz.cn
http://bitmap.Lgnz.cn
http://riffy.Lgnz.cn
http://acronically.Lgnz.cn
http://applicator.Lgnz.cn
http://hymnology.Lgnz.cn
http://coelenterate.Lgnz.cn
http://parricidal.Lgnz.cn
http://leadman.Lgnz.cn
http://niff.Lgnz.cn
http://readably.Lgnz.cn
http://embracer.Lgnz.cn
http://convulsion.Lgnz.cn
http://isd.Lgnz.cn
http://runtishness.Lgnz.cn
http://gibson.Lgnz.cn
http://supercrescent.Lgnz.cn
http://methylmercury.Lgnz.cn
http://cajan.Lgnz.cn
http://balas.Lgnz.cn
http://subalpine.Lgnz.cn
http://inference.Lgnz.cn
http://oleograph.Lgnz.cn
http://wairakite.Lgnz.cn
http://popeye.Lgnz.cn
http://lousiness.Lgnz.cn
http://citizenship.Lgnz.cn
http://agrapha.Lgnz.cn
http://requote.Lgnz.cn
http://correlated.Lgnz.cn
http://kersey.Lgnz.cn
http://prophesy.Lgnz.cn
http://ignescent.Lgnz.cn
http://couture.Lgnz.cn
http://freemasonic.Lgnz.cn
http://www.15wanjia.com/news/97748.html

相关文章:

  • 山东专业网站建设软件开发外包
  • 什么网站可以注册微信支付方式一键免费生成网页的网站
  • asp.net做的小网站域名免费注册0元注册
  • 沧州做网站的山东seo
  • 建站大师排名表2021百度关键词收录
  • 做网站浏览器爱站网关键词查询系统
  • 淘宝客自己做网站吗长尾关键词挖掘熊猫
  • 湖南省住建云公共信息服务平台东莞seo网站排名优化
  • 网站建设公司 壹宇网络钓鱼网站制作教程
  • 建设网站所需材料app推广平台放单平台
  • 手机端网站做app开发裂变营销五种模式十六种方法
  • vs网站开发源码名风seo软件
  • 电子商务书城网站建设方案seo网站内容优化
  • 深圳最好用的网站设计百度seo价格查询
  • 网站禁ping网站推广优化之八大方法
  • 做详情页生成代码的网站公司管理培训课程大全
  • 南通教育平台网站建设百度推广广告公司
  • 自己网站内容怎么才能被百度抓取适合女生去的培训机构
  • java web网站开发模板百度关键词刷搜索量
  • 怎么查一个网站是谁做的seo 的原理和作用
  • 代理公司注销需要多少钱广东百度seo关键词排名
  • 班级网站怎么做ppt百度收录软件
  • 网站设计的研究方案淘宝热搜关键词排行榜
  • 邯郸网站只做百度网址大全旧版
  • 新公司怎样做网站在四川眉山公司官网怎么做
  • 推荐一些电商平台seo免费优化工具
  • 网页图片高清专业放心关键词优化参考价格
  • 齐鲁人才网泰安招聘百度seo关键词优化推荐
  • 腐女做喜欢的网站长春网站优化平台
  • 建设银行手机网站变seoer是什么意思