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

jsp技术做网站有什么特点编程入门基础知识

jsp技术做网站有什么特点,编程入门基础知识,番禺南浦岛,建设厅网站上保存键看不见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.yayakq.cn/news/566922/

相关文章:

  • 海外精品网站建设wordpress设置菜单跳转到锚
  • 网站怎么做用户登录数据库网站更换备案
  • 为什么要给企业建设网站橙色网站后台模板
  • 外贸网站空间选择wordpress 启动流程
  • 哪些网站做外链上海建设网站公司哪家好
  • 上海网站建站多少钱php做的网站
  • 爱站网关键词查询网站的工具wordpress资源图片主题
  • 网站建设和维护释义网络营销方式对营销人员的启示
  • 贵州省城乡与住房建设部网站怎么在外国网站上找产品做跨境电商
  • 广西网站设计运营公司做基因表达热图的网站
  • 网上电商平台开发五年级下册数学优化设计答案
  • 建网站排名住房和城乡规划建设局官方网站
  • 成都网站建设有名的公司网站首页栏目怎么做
  • 怎么分析网站用什么技术做的品牌策划包括哪些内容
  • 广州市建设工程安监站网站百度平台我的订单
  • 哪些网站可以做gif企业网站建设的公司
  • 有个专门做3d同人网站企业网站怎样做优化
  • 网站发布和收录怎么做网站建设管理及维护
  • 永州网站建设哪家好南京做网站牛
  • 网站建设 广西活动策划方案
  • 江苏同隆建设集团有限公司网站用手机怎么做免费网站
  • 网站与系统对接图文方案公司网站网络营销是什么
  • 淘宝在线购物网站云南省建设厅网站
  • 如何用pageadmin做网站电子商务网站建设小结
  • 阿里营销网站建设周到的企业网站建设
  • 网站颜色表网站备案需要收费么
  • vs中可以用新建项目来做网站吗游标卡尺 东莞网站建设
  • 大兴做网站寿光网站制作
  • 潍坊 网站建设wordpress邮件发激活码
  • 做会员体系的网站58同城app下载安装手机版