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

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

PA13,PA14,PA15默认是JTAG调试端口。默认情况下这些引脚的通用IO功能是不能使用的,使用前应当关闭JTAG和SWD:

AFIO->MAPR &= ~(0X07 << 24); //清除b26:b24

AFIO->MAPR |= 0X04 << 24; //设定JTAG无效,SWD无效

#include<reg52h>

#include<intrinsh>

#define mode 0x81 // 方式0,A口、B口输出,C口高4位输出,低4位输入

# include "stdioh"

# include "stringh"

# include "mathh"

xdata unsigned char PA _at_ 0x7f00;

xdata unsigned char PB _at_ 0x7f01;

xdata unsigned char PC _at_ 0x7f02;

xdata unsigned char caas _at_ 0x7f03; //控制字

sbit P32=P3^2;

sbit P33=P3^3;

sbit P35=P3^5;

#define uchar unsigned char

#define uint unsigned int

unsigned char h,Pos ;

unsigned int R,NX,NY;

unsigned char key;

code unsigned char KeyTable[] = { // 键码定义

0x0f, 0x0b, 0x07, 0x03,

0x0e, 0, 0x06, 0x02,

0x0d, 0x09, 0x05, 0x01,

0x0c, 0x08, 0x04, 0x00

};

code unsigned char LEDMAP[] = { // 八段管显示码

0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,

0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71

};

unsigned char Code_ ; // 字符代码寄存器

#define PD1 61 // 122/2 分成左右两半屏(122x32)

unsigned char Column;

unsigned char Page_ ; // 页地址寄存器 D1,DO:页地址

unsigned char Code_ ; // 字符代码寄存器

unsigned char Command; // 指令寄存器

unsigned char LCDData; // 数据寄存器

xdata unsigned char CWADD1 _at_ 0x1cff; // 写指令代码地址(E1)

xdata unsigned char DWADD1 _at_ 0x1eff; // 写显示数据地址(E1)

xdata unsigned char CRADD1 _at_ 0x1dff; // 读状态字地址(E1)

xdata unsigned char DRADD1 _at_ 0x1fff; // 读显示数据地址(E1)

xdata unsigned char CWADD2 _at_ 0x3cff; // 写指令代码地址(E2)

xdata unsigned char DWADD2 _at_ 0x3eff; // 写显示数进地址(E2)

xdata unsigned char CRADD2 _at_ 0x3dff; // 读状态字地址(E2)

xdata unsigned char DRADD2 _at_ 0x3fff; // 读显示数据地址(E2)

//----------------------液晶-----------------

// 清屏

// 中文显示程序 /

/直线 插 补8/

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=50;y>0;y--);

}

void zhengx()

{

PA=0x00;

delay(10);

PA=0x01;

delay(10);

}

void fux()

{

PA=0x02;

delay(10);

PA=0x03;

delay(10);

}

void zhengy()

{

PB=0x00;

delay(10);

PB=0x10;

delay(10);

}

void fuy()

{

PB=0x20;

delay(10);

PB=0x30;

delay(10);

}

void zhixian(int NX,int NY)

{int FM, NXY, XOY,ZF,z;

FM=0;

{if(NX>0)

if(NY>0)

XOY=1;

else

XOY=4;

else

if(NY>0)

XOY=2;

else

XOY=3;}

for(NXY= fabs(NX) + fabs(NY)-1;NXY>=0&&P32!=0&&P33!=0;NXY--)

{ {if(NX>0)

if(NY>0)

XOY=1;

else

XOY=4;

else

if(NY>0)

XOY=2;

else

XOY=3;}

for(NXY= fabs(NX) + fabs(NY)-1;NXY>=0;NXY--)

{ if(FM>=0)

{if(XOY==1||XOY==4)

{ZF=1;

zhengx();

}

else

{ZF=2;

fux();

}

FM=FM-fabs(NY);

}

else

{if(XOY==1||XOY==2)

{

ZF=3;

zhengy();

}

else

{ZF=4;

fuy();

}

FM=FM+fabs(NX);

}

}

for(z=0;z<200;z++)

{P35 = 0;

delay(10);

P35 = 1;

delay(10);

}

}

}

/圆 弧 插 补8/

void yuanhu1( int X0,int Y0, int NX, int NY ,int RNS )

{

int NXY,BS,ZF,XM,YM,z;

int FM=0;

BS=fabs(NX-X0) + fabs(NY-Y0);

XM=fabs(X0);

YM=fabs(Y0);

for(NXY= fabs(NX-X0) + fabs(NY-Y0)-1;NXY>=0&&P32!=0&&P33!=0;NXY--)

{

if(RNS==1||RNS==3||RNS==6||RNS==8)

{

if(FM<0)

{

if(RNS==1||RNS==8)

{ZF=1;

zhengx();

}

else

{ZF=2;

fux();}

FM=FM+2fabs(XM)+1;

XM=XM+1;

}

else

{

if(RNS==1||RNS==6)

{

ZF=3;

fuy();

}

else

{ZF=4;

zhengy();

}

FM=FM-2fabs(YM)+1;

YM=YM-1;

}

}

else

if(FM>=0)

{

if(RNS==2||RNS==7)

{ZF=1;

zhengx();

}

else

{ZF=2;

fux();

}

FM=FM-2fabs(XM)+1;

XM=XM-1;

}

else

{

if(RNS==2||RNS==5)

{ZF=3;

zhengy();}

else

{ZF=4;

fuy();}

FM=FM+2fabs(YM)+1;

YM=YM+1;

}

}

if(P32==0||P33==0)

{

for(z=0;z<200;z++)

{P35 = 0;

delay(10);

P35 = 1;

delay(10);

}

}

}

int shuzhi1 ()

{

int i=0,j=0,k=3;

while (1)

{

if(testkey())

{ delay(300);

delay1();

if(testkey())

{ j=getkey();

if(j!=14)

{i=i10 + j;

k--;}

}}

if(k==0)

break;

}

return i;

}

int shuzhi2 ()

{

int i=0,j=0,k=3;

while (1)

{

if(testkey())

{ delay(300);

delay1();

if(testkey())

{ j=getkey();

if(j!=14)

{i=i10 + j;

k--;}

}}

if(k==0)

break;

}

return i;

}

void yuanhuchabu1()

{ int q=0;

delay(300);

R=shuzhi1();

yj1();

q=R/100;

Page_ = 0x00;

Column = 0x35;

Code_ = q;

WriteCHN8x16();

q=R%100;

q=q/10;

Page_ = 0x00;

Column = 0x40;

Code_ = q;

WriteCHN8x16();

q=R%10;

Page_ = 0x00;

Column = 0x48;

Code_ = q;

WriteCHN8x16();

yuanhu1(R,0,0,R,5);

yuanhu1(0,R,-R,0,6);

yuanhu1(-R,0,0,-R,7);

yuanhu1(0,-R,R,0,8);

}

void yuanhuchabu2()

{ int q=0;

delay(300);

R=shuzhi1();

yj1();

q=R/100;

Page_ = 0x00;

Column = 0x35;

Code_ = q;

WriteCHN8x16();

q=R%100;

q=q/10;

Page_ = 0x00;

Column = 0x40;

Code_ = q;

WriteCHN8x16();

q=R%10;

Page_ = 0x00;

Column = 0x48;

Code_ = q;

WriteCHN8x16();

yuanhu1(0,R,R,0,1);

yuanhu1(R,0,0,-R,4);

yuanhu1(0,-R,-R,0,3);

yuanhu1(-R,0,0,R,2);

}

void zhixianchabu()

{ int q1=0,q2=0;

delay(300);

NX=shuzhi1();

delay(300);

NY=shuzhi2();

yj2();

Page_ = 0x00;

Column = 0x25;

Code_ = 0x10;

WriteCHN8x16();

q1=NX/100;

Page_ = 0x00;

Column = 0x30;

Code_ = q1;

WriteCHN8x16();

q1=NX%100;

q1=q1/10;

Page_ = 0x00;

Column = 0x37;

Code_ = q1;

WriteCHN8x16();

q1=NX%10;

Page_ = 0x00;

Column = 0x40;

Code_ = q1;

WriteCHN8x16();

q2=NY/100;

Page_ = 0x00;

Column = 0x50;

Code_ =q1;

WriteCHN8x16();

q2=NY%100;

q2=q2/10;

Page_ = 0x00;

Column = 0x58;

Code_ = q2;

WriteCHN8x16();

q2=NY%10;

Page_ = 0x00;

Column = 0x60;

Code_ = q2;

WriteCHN8x16();

Page_ = 0x00;

Column = 0x72;

Code_ = 0x11;

WriteCHN8x16();

zhixian(NX,NY );

}

void main()

{ int q=0,q1=0,q2=0;

caas=mode;

PA=0X00;

PB=0X00;

PC=0x00;

R=0X00;

while(1)

{

if(testkey())

{

delay1();

if(testKey())

{ delay1();

if(getkey()==15)

{

delay(300);

yuanhuchabu1();

}

else if(getkey()==10)

{ delay(300);

yuanhuchabu2();

}

else if(getkey()==13)

{

zhixianchabu();

}

else if(getkey()==1)

{

zhengx();

}

else if(getkey()==2)

{

fux();

}

else if(getkey()==3)

{

zhengy();

} else if(getkey()==4)

{

fuy();

}

}

}

if(GetKey()==12)

{ break;}

}

}

在药理学中pA2是一种用以表示竞争性拮抗剂作用强度的指标,其意义是能使激动剂提高到原来的2倍时,可产生与原来浓度相同效应所需的拮抗剂的摩尔浓度(克分子浓度现已很少用))的负对数(-log(B))。PA2的值越大说明拮抗剂的作用越强。pA2是拮抗参数(antagonism parameter):当有一定浓度的拮抗药存在时,激动剂增加2倍时才能达到原来效应,此时拮抗药的摩尔浓度的负对数即拮抗参数, pA2 = -log[I] = -logKI

PD2是激动剂与受体亲和力的定量表示,按照Ariens的定义,PD2是产生50%最大效应(E=1/2Emax)的摩尔浓度的负对数(-log)。PD2值越大,说明药物和受体的亲和力越大,药效越强。PA2是一种表示竞争性拮抗剂作用强度的参数,它的定义是在实验系统中加入一定浓度(2)的竞争性拮抗剂,可以使激动剂在原来浓度2倍时产生原来浓度的效应水平,这种拮抗剂摩尔浓度的负对数(-log2)即PA2。药物的PA2值越大,拮抗作用越强。PD2'是一种用来表示非竞争性拮抗剂作用强度的参数。它越大表示非竞争性拮抗剂作用越强。

娱乐场所的PA应该是指PUBLIC

AREA

是一个职位

意思是清洁员

2:PA就是Public

Area的英文缩写,意思是“公清组”,一般是高星级酒店里客房部负责整个酒店公共区域的清洁,酒店设施设备的清洁保养的。

以上就是关于stm32 中设置PA口为上拉输入接按键,这个程序为什么不行全部的内容,包括:stm32 中设置PA口为上拉输入接按键,这个程序为什么不行、一个51单片机同时控制2个步进电机的C语言程序、药理学pA2是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9334083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存