嵌入式系统基础 项目七:通用GPIO编程 按键程序main.c.docx

嵌入式系统基础 项目七:通用GPIO编程 按键程序main.c.docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统基础延伸阅读 嵌入式系统基础 按键程序main.c #include utils.h #include s3c6410_addr.h unsigned short value = 0; //用来保存从端口读取的按键状态 static void Delay(void) //延时函数 { volatile unsigned int k; //定义临时变量 for(k = 0; k 200000; k++); //通过for循环计数实现延时功能 } void KeyScan(void) //按键扫描函数 { value = ((unsigned short)rGPNDAT) 0x3F; //读取GPN端口状态,并只取GPN5~0位 if(value != 0x3F) //判断是否有按键被按下 { Delay(); //消除抖动 value = ((unsigned short)rGPNDAT) 0x3F; //重新读取端口状态 if(value != 0x3F) //再次判断是否有按键被按下 { if(!(value 0x1)) //GPN0引脚接按键K1 { Uart_SendString(K1 is pressed!\r\n); } if(!(value 0x2)) //GPN1引脚接按键K2 { Uart_SendString(K2 is pressed!\r\n); } if(!(value 0x4)) //GPN2引脚接按键K3 { Uart_SendString(K3 is pressed!\r\n); } if(!(value 0x8)) //GPN3引脚接按键K4 { Uart_SendString(K4 is pressed!\r\n); } if(!(value 0x10)) //GPN4引脚接按键K5 { Uart_SendString(K5 is pressed!\r\n); } if(!(value 0x20)) //GPN5引脚接按键K6 { Uart_SendString(K6 is pressed!\r\n); } while(value != 0x3F) //通过该循环判断按键是否松开 { //读取端口状态 value = ((unsigned short)rGPNDAT) 0x3F; } } } } int _main(void) { Port_Init(); //与按键有关的寄存器初始化 Uart_Init(); //UART相关寄存器初始化 Uart_Printf(\n********************\n); Uart_Printf( Key Test!); Uart_Printf(\n********************\n); for(;;) { KeyScan(); //调用按键扫描函数 } return 0; }

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
内容提供者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档