在 stm32中如何判断管脚的状态呀·~。。能不能详细的写出来。 比如我要判断PA6是不是为高电平。。。还有字库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 stm32中如何判断管脚的状态呀·~。。能不能详细的写出来。 比如我要判断PA6是不是为高电平。。。还有字库相关的知识,希望对你有一定的参考价值。
芯片跟stm32结合的例子程序有么··
u8 GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9); 这个是读取输入引脚的,还有相应的读取输出引脚。读取PB9引脚的点评状态,高电平返回1,低电平返回0.
是这个函数,不过函数名儿我记不大清了,大体是这个名称。 参考技术A if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6))
就行了 参考技术B 买一个开发板,里面一大把例子,网上也有很多。 参考技术C /******************************************************************************/
#include "stm32f10x_lib.h"
/***************************************/
GPIO_InitTypeDef GPIO_InitStructure;
ErrorStatus HSEStartUpStatus;
#define PA0_H GPIO_SetBits(GPIOA, GPIO_Pin_0) // PA0 高电平
#define PA0_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++);
/*************结束***************/
有什么不懂的还可以再问我
stm32F103的端口与管脚的功能定义表
一、端口与引脚的定义
二、FSMC引脚定义
FSMC(Flexible Static Memory Controller,可变静态存储控制器)是STM32系列采用的一种新型的存储器扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展.
以上是关于在 stm32中如何判断管脚的状态呀·~。。能不能详细的写出来。 比如我要判断PA6是不是为高电平。。。还有字库的主要内容,如果未能解决你的问题,请参考以下文章