#include "Black_All.h"
void main(void)
{
Init();
P1REN|=BIT1;
while(1){
if( KEY0_STATE()==0)
{
LED0_STATE(1);
}
else
LED0_STATE(0);
}
return 0;
}
int KEY0_STATE()
{
int i;
if(P1IN & BIT1)
{
for(i=0;i<12000;i++); // 延时消抖
if(P1IN & BIT1)
{
return 0;
}
}
return 1;
}
按键一直接受不到数据,不知道是什么原因
怎么判断没收到数据呢?
你多刷新几次
不知道你这个问题是否已经解决, 如果还没有解决的话:如果它是地址,就在它后边用 ->,如果它不是地址,就在它后边就用 .
/* 线性表初始化*/
int InitList(SqList *L)
{
L->elem=(char*)malloc(LIST_INIT_SIZE*sizeof(char));
if(!L->elem)
exit(OVERFLOW);
L->length=0;
L->listsize=0;
return 0;
}
例如:
#include <stdio.h>
#include <string.h>
typedef struct Person
{
char name[20];
int age;
}Per;
void test(Per* p)
{
char* p = "Tom";
memcpy(p->name, p, strlen(p)); //P是一个结构体指针,因此使用“结构体指针名->成员变量名”来引用变量
p->age = 20;
}
int main()
{
Per p;
memset(p, 0, sizeof(Per));
test(&tt);
printf("Name:%s\n", p.name); //p是个结构体变量,因此使用 “结构体名.成员变量” 来引用变量
printf("Age:%d\n",p.age);
return 0;
}
解决方案:
检查硬件连接: 确保按键正确连接到正确的引脚上,并且引脚与MCU之间没有松动或其他连接问题。
确认硬件配置: 确保你在CCS中正确配置了引脚和中断的设置。检查是否有其他的引脚配置冲突。
检查按键状态: 可以使用示波器或逻辑分析仪来确认按键是否正常工作,以及按键是否按下时引脚的状态有所改变。
检查中断设置: 如果你使用了中断来处理按键事件,检查中断设置是否正确。确保中断向量表是否正确、中断优先级是否正确设置以及中断处理函数是否正确实现。
检查软件代码: 检查你的软件代码,确认是否正确处理了按键事件。可以使用调试工具来单步调试代码,并检查按键事件处理的逻辑。
确认软硬件兼容性: 确保你使用的硬件和CCS版本是兼容的。有时候一些老版本的CCS可能不支持最新的硬件。
如果以上步骤都没有解决问题,那么可能是硬件故障或CCS本身的问题。你可以尝试更新CCS版本,或者联系厂商的技术支持来获取更进一步的帮助。
希望以上解决方案对您有所帮助,如有任何问题,请随时提问。