本文目录一览:
单片机怎么用c语言设置I/O口输入或输出
IO口的输入输出是通过对单片机寄存器的配置来实现的。
C51的单片机IO口本来就是双向的不需要设置。
STM32单片机的IO口用C语言的设置方法如下:
void LED_Config(void)
{
GPIO_InitTypeDef GPIO_Structure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//PC10-LED(指示灯)
GPIO_Structure.GPIO_Pin = GPIO_Pin_10;
GPIO_Structure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Structure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC,GPIO_Structure); //LED
}
模拟开关灯实验:编程实现2个开关控制1个灯的亮,灭,C语言
sbit B1=P2^0;
sbit B2=P2^1;
sbit LED=P1^1;
void delay(){
unsigned int a=3000;
while(a–){
;
}
}
void delay1(){
unsigned int a=2000;
while(a–){
;
}
}
main(){
while(1){
if(B1==0){
delay1();
if(B1==0){
LED=1;
}
}
if(B2==0){
delay1();
if(B2==0){
LED=0;
}
}
}
}
单片机I/O口,C语言怎么设置输入?
单片机的IO口,如51单片机的IO口,直接是双向IO口,不需要设置即可用作输入或者输出。
如P0=0x40;这里是设置为输出;Temp=P2;这是将P2口作为输入读取数据
有些单片机如STM32单片机的IO口是多功能复用IO口,只需要指定IO口的模式即可
如STM32的LED驱动IO口设置初始化程序如下:
void LED_Config(void)
{
GPIO_InitTypeDef GPIO_Structure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//PC10-LED(指示灯)
GPIO_Structure.GPIO_Pin = GPIO_Pin_10;
GPIO_Structure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Structure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC,GPIO_Structure); //LED
}
编程实验 c语言,求代码
1、唯一要注意的是float型无法直接用%x进行十六进制的输出,需要用某种方法依次取它的各字节数据来输出。
#include
“stdio.h”
void
main()
{
short
a=-12335;
int
b;
unsigned
short
c;
unsigned
int
d;
int
e;
float
f;
unsigned
char
*p;
b=(int)a;
printf(“%d
%x\n”,b,b);
c=(unsigned
short)b;
printf(“%u
%x\n”,c,c);
d=(unsigned
int)c;
printf(“%u
%x\n”,d,d);
e=(int)d;
printf(“%d
%x\n”,e,e);
f=(float)e;
printf(“%f
“,f);
p=(unsigned
char
*)f;
printf(“%x%x%x%x\n”,p[3],p[2],p[1],p[0]);
}
2、double型和float型数据要输出16进制形式,都要用1中用的方法
#include
“stdio.h”
void
main()
{
float
a=123456.789e5;
double
b;
float
c;
unsigned
char
*p;
int
i;
b=(double)a;
printf(“%lf
“,b);
p=(unsigned
char*)b;
for(i=sizeof(double)-1;i=0;i–)
printf(“%x”,p[i]);
printf(“\n”);
c=(float)b;
printf(“%f
“,c);
p=(unsigned
char*)c;
for(i=sizeof(float)-1;i=0;i–)
printf(“%x”,p[i]);
printf(“\n”);
}
3、题目要求看不懂,不知道效率是什么意思
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/193465.html