stm32 中设置PA口为上拉输入接按键,这个程序为什么不行

#defineKEY1PAin(1)//PA1#defineKEY2PAin(2)//PA2#defineKEY3PAin(3)//PA3#defineKEY4PAin(... #define KEY1 PAin(1) //PA1
#define KEY2 PAin(2) //PA2
#define KEY3 PAin(3) //PA3
#define KEY4 PAin(4) //PA4
#define KEY5 PAin(5) //PA5
#define KEY6 PAin(13) //PA13
#define KEY7 PAin(15) //PA15

void KEY_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
GPIOA->CRL&=0XFF00000F;//PA1-5设置成输入
GPIOA->CRL|=0X00888880;
GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入
GPIOA->CRH|=0X80800000;
GPIOA->ODR|=1<<1; //PA1上拉
GPIOA->ODR|=1<<2; //PA2上拉
GPIOA->ODR|=1<<3; //PA3上拉
GPIOA->ODR|=1<<4; //PA4上拉
GPIOA->ODR|=1<<5; //PA5上拉
GPIOA->ODR|=1<<13; //PA13上拉
GPIOA->ODR|=1<<15; //PA15上拉
}
展开
 我来答
尚云社
推荐于2016-05-05 · TA获得超过391个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:280万
展开全部
PA13,PA14,PA15默认是JTAG调试端口。默认情况下这些引脚的通用IO功能是不能使用的,使用前应当关闭JTAG和SWD:
AFIO->MAPR &= ~(0X07 << 24); //清除b26:b24
AFIO->MAPR |= 0X04 << 24; //设定JTAG无效,SWD无效
追问
这个我在按键扫描的时候都禁用JTAG调试端口,我的PA1-5设置有错吗
追答
这一部分看起来没什么问题,是不是其它地方的问题呢
迪凯特科技(北京)有限公司
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式