野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20610|回复: 4

SWITCH 如何返回字符型数值

[复制链接]
发表于 2014-7-22 20:48:48 | 显示全部楼层 |阅读模式
一下是我写的4*4矩阵键盘的程序。但是函数返回的是数值型值。如何返回字符型呢?
比方说:            
   switch(GPIO_ReadInputData(GPIOC)&0xff)
{  
                                case 0x71: return 'UP'; break;
                                case 0xB1: return 'DOWN'; break;
                                case 0xD1: return 'F1'; break;
                                case 0xE1: return 'F2'; break;
}

uint8_t ReadKey(void)
{  
        uint8_t KeyValue;
        if((GPIO_ReadInputData(GPIOC)&0xff)!=0x0f)
        {  
                Delay_us(10000);//延时10ms  
                if((GPIO_ReadInputData(GPIOC)&0xff)!=0x0f)
                {  
                        GPIO_SetBits(GPIOC, GPIO_Pin_0);  
                        GPIO_ResetBits(GPIOC, GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
                        switch(GPIO_ReadInputData(GPIOC)&0xff)
                        {  
                                case 0x71: KeyValue = 1; break;
                                case 0xB1: KeyValue = 5; break;
                                case 0xD1: KeyValue = 9; break;
                                case 0xE1: KeyValue = 13; break;
                        }  
                        GPIO_SetBits(GPIOC, GPIO_Pin_1);
                        GPIO_ResetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2);
                        switch(GPIO_ReadInputData(GPIOC)&0xff)
                        {  
                                case 0x72: KeyValue = 2; break;
                                case 0xB2: KeyValue = 6; break;
                                case 0xD2: KeyValue = 10; break;
                                case 0xE2: KeyValue = 14; break;
                        }  
                        GPIO_SetBits(GPIOC, GPIO_Pin_2);  
                        GPIO_ResetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_3);
                        switch(GPIO_ReadInputData(GPIOC)&0xff)
                        {  
                                case 0x74: KeyValue = 3; break;
                                case 0xB4: KeyValue = 7; break;
                                case 0xD4: KeyValue = 11; break;
                                case 0xE4: KeyValue = 15; break;
                        }
                        GPIO_SetBits(GPIOC, GPIO_Pin_3);
                        GPIO_ResetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2);
                        switch(GPIO_ReadInputData(GPIOC)&0xff)
                        {  
                                case 0x78: KeyValue = 4;   break;
                                case 0xB8: KeyValue = 8;   break;
                                case 0xD8: KeyValue = 12;  break;
                                case 0xE8: KeyValue = 16;  break;
                        }  
                        GPIO_SetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
                        GPIO_ResetBits(GPIOC, GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);  
                        while((GPIO_ReadInputData(GPIOC)&0xff)!=0x0f);
                        return KeyValue;  
                }
        }  
        return 0;
}

求大神修改一下,提点建议啊

主题推荐

回复

使用道具 举报

发表于 2014-7-22 20:51:29 | 显示全部楼层
定义一个字符串变量,然后根据结果往字符串赋不同的值,最后返回字符串
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-22 20:52:29 | 显示全部楼层
简逸致 发表于 2014-7-22 20:51
定义一个字符串变量,然后根据结果往字符串赋不同的值,最后返回字符串

我试试啊,大神帮忙修改一下 啊
回复 支持 反对

使用道具 举报

发表于 2014-7-22 22:40:41 | 显示全部楼层
本帖最后由 Enzo 于 2014-7-22 22:43 编辑

..字符型本身就是整形啊...而且 'UP'有这个字符?? 是字符串吧....

先说明你的目的 为什么要返回字符
回复 支持 反对

使用道具 举报

发表于 2014-7-22 22:42:00 | 显示全部楼层
返回一个字符 直接返回对应该字符的ASCII值 返回字符串 返回指针
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 06:35 , Processed in 0.030264 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表