stm32 按键实验,我明明上拉输入 ,为什么一烧入就两个小灯一起亮。
#include"stm32f10x.h"#include"sys.h"#include"delay.h"#defineled0PAout(8)#defineled1PD...
#include "stm32f10x.h"
#include "sys.h"
#include "delay.h"
#define led0 PAout(8)
#define led1 PDout(2)
#define key0 PCin(5)
int main(void){
RCC->APB2ENR|=1<<2; //GPIOA,GPIOC,GPIODʹÄÜ
RCC->APB2ENR|=1<<4;
RCC->APB2ENR|=1<<5;
GPIOA->CRH|=0Xfffffff0; //³õʼ»¯A8
GPIOA->CRH|=0X00000003;
GPIOC->CRL|=0Xff0fffff; //³õʼ»¯C5
GPIOC->CRL|=0X00800000;
GPIOD->CRL|=0Xfffff0ff; //³õʼ»¯D2
GPIOD->CRL|=0X00000300;
GPIOC->ODR|=1<<5; //À¸ßC5
delay_init();
while(1)
{
led0=0;
if(key0==0)
{
led1=0;
}
}
} 展开
#include "sys.h"
#include "delay.h"
#define led0 PAout(8)
#define led1 PDout(2)
#define key0 PCin(5)
int main(void){
RCC->APB2ENR|=1<<2; //GPIOA,GPIOC,GPIODʹÄÜ
RCC->APB2ENR|=1<<4;
RCC->APB2ENR|=1<<5;
GPIOA->CRH|=0Xfffffff0; //³õʼ»¯A8
GPIOA->CRH|=0X00000003;
GPIOC->CRL|=0Xff0fffff; //³õʼ»¯C5
GPIOC->CRL|=0X00800000;
GPIOD->CRL|=0Xfffff0ff; //³õʼ»¯D2
GPIOD->CRL|=0X00000300;
GPIOC->ODR|=1<<5; //À¸ßC5
delay_init();
while(1)
{
led0=0;
if(key0==0)
{
led1=0;
}
}
} 展开
2个回答
展开全部
首先,你的led宏定义定义的是输出。
其次,写程序最好是使用库函数。
其次,写程序最好是使用库函数。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询