问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在 stm32中如何判断管脚的状态呀·~。。能不能详细的写出来。 比如我要判断PA6是否为高电平。。。还有字库

发布网友 发布时间:2022-04-29 19:15

我来回答

4个回答

热心网友 时间:2023-10-05 13:58

u8 GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9); 这个是读取输入引脚的,还有相应的读取输出引脚。
读取PB9引脚的点评状态,高电平返回1,低电平返回0.
是这个函数,不过函数名儿我记不大清了,大体是这个名称。

热心网友 时间:2023-10-05 13:59

if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6))
就行了

热心网友 时间:2023-10-05 13:59

买一个开发板,里面一大把例子,网上也有很多。

热心网友 时间:2023-10-05 14:00

/******************************************************************************/

#include "stm32f10x_lib.h"

/***************************************/
GPIO_InitTypeDef GPIO_InitStructure;
ErrorStatus HSEStartUpStatus;

#definePA0_H GPIO_SetBits(GPIOA, GPIO_Pin_0) // PA0 高电平
#definePA0_L GPIO_ResetBits(GPIOA, GPIO_Pin_0) // PA0 低电平

/* 函数申明 -----------------------------------------------*/
void RCC_Configuration(void);
void GPIO_Configuration(void);

void Delay(u32 nTime);
void Delayms(vu32 m);
/* 变量定义 ----------------------------------------------*/
u8 ReadValue;

/*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
** 输 入: 无
** 输 出: 无
** 返 回: 无
********************************************************************************
*/
int main(void)
{

RCC_Configuration();
GPIO_Configuration();

while(1)
{
PA0_H; //设置PA0为高
ReadValue = GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_0);//读出PA0的状态

PA0_L; //设置PA0为低
ReadValue = GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_0); //读出PA0的状态
}

}

/*
********************************************************************************
** 函数名称 : RCC_Configuration(void)
** 函数功能 : 时钟初始化
** 输 入: 无
** 输 出: 无
** 返 回: 无
********************************************************************************
*/
void RCC_Configuration(void)
{
/* RCC system reset(for debug purpose) */
RCC_DeInit();

/* Enable HSE */
RCC_HSEConfig(RCC_HSE_ON);

/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp();

if(HSEStartUpStatus == SUCCESS)
{
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);

/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);

/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);

/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2);
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

/* PLLCLK = 8MHz * 9 = 72 MHz */
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

/* Enable PLL */
RCC_PLLCmd(ENABLE);

/* Wait till PLL is ready */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}

/* Select PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

/* Wait till PLL is used as system clock source */
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
}

/*
********************************************************************************
** 函数名称 : GPIO_Configuration(void)
** 函数功能 : 端口初始化
** 输 入: 无
** 输 出: 无
** 返 回: 无
********************************************************************************
*/
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE );

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; // 上拉输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 最高输出速率50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); // 选择A端口 */
}

/*
********************************************************************************
** 函数名称 : Delay(vu32 nCount)
** 函数功能 : 延时函数
** 输 入: 无
** 输 出: 无
** 返 回: 无
********************************************************************************
*/
void Delay(vu32 nCount)
{
for(; nCount != 0; nCount--);
}

/*
********************************************************************************
** 函数名称 : void Delayms(vu32 m)
** 函数功能 : 长延时函数 m=1,延时1ms
** 输 入: 无
** 输 出: 无
** 返 回: 无
********************************************************************************
*/
void Delayms(vu32 m)
{
u32 i;

for(; m != 0; m--)
for (i=0; i<50000; i++);
}

/*************结束***************/

有什么不懂的还可以再问我
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
13岁一直到18岁晚上经常熬夜会有什么影响 具象表现素描内容简介 ...| 从14世纪文艺复兴到20世纪具象表现绘画 · 168幅画 · 图解西方... 【漫画赏析】比喻具象化——《孤高之人》手法分析 具象美术作品有哪些 具象艺术艺术家介绍 话说 曾经有个演唱会 是初音未来演唱会 39祭 谁知道微信聊天记录删掉了,还能恢复过来吗?有什么软件可以恢复吗?不... 六爻。测缘分。测婚姻 礼仪起源于祭祀的证据是什么? 求助如何测量STM32芯片进入低功耗模式后的电流 怎么判断stm32单片机是否起振 STM32单片机怎么检测0 stm32芯片坏了,烧录程序时会是什么样 如何看stm32芯片资料 如何用stm32检测温度 如何确定stm32芯片的flash够不够用 设计一个程序,检测stm32芯片温度,并将测试结果通过串口发送给pc? 如何判断STM32是否烧坏 stm32f407zgt6芯片怎么判断有没有烧 梦到别人把死人的床被什么扔出来,差点被扔到自己,是什么意思? 睡在床尾方向梦到鬼 梦到死人给你留床位好不好 梦见去世的奶奶在我家里把我的床给挪走了,换了她的床,什么意思? 周公解梦大全查询梦见死人从一个地方出殡后又回到另一个家里搬到床上? 微信电子医保激活之前个人信息不对怎么回事 刷电子医保提示错误,获取卡片信息出错,还未实例化具体的对象_百度问一问 为什么我最近老做梦 我的是腾讯视频VIP会员付费重复了怎么办 原本就是腾讯视频VIP领了腾讯微视的可以叠加吗? 如何实现stm32f103外接adc0832芯片检测电压 怎样读出STM32芯片程序再烧录回去 解密STM32F102R8芯片如果引脚坏了还能用么?哪能解? 大神们好,STM32新手请问STM32芯片资料里面中断是什么意思,在芯片资料里面怎么知道那个脚是带中断的呢。 单片机stm32 可以检测 1uS的脉冲信号吗? 一般剃须刀片多久需要更换一次? 电动剃须刀的使用年限是多久有人知道吗? 请问办理一张VISA卡要什么东西,我想办储蓄卡, windows7电脑切换用户了怎么办? win7旗舰版不小心点了切换用户怎样退回来 win7 系统开机不小心点了切换用户,怎么办? 如何让win7自动登陆某个账户后立即回到切换用户的界面? win7 多用户怎么切换回默认用户 win7输密码时不小心按到切换用户之后用好多方法都解决不了,求各位大 win7电脑在开机页面输入密码时不小心切换用户了,密码老输错,怎么样才能切换回来?没有那个选项了 大众速腾发动机后六位在哪里看 一汽大众速腾2019发动机生产日期发动上面有刚印吗? 什么视频播放器视频全而且不要钱 请问,哪个视频播放器看电影不收费,像优酷,爱奇艺等等,好多电影都看不了 我想查询我3年内所有的快递怎么查询?