blueleafzte 发表于 2014-6-19 08:42:26

使用库函数如何获取GPIO的输入信息?

 简化后的user目录下的main程序代码如下:
#include "stm32f10x.h"
 
void GPIO_Config()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
        //PB14 -> LD                                                                   
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;   //上拉输入
        GPIO_Init(GPIOB, &GPIO_InitStructure); 
 
}
 
int main(void)
{
        u8 Read_LD;
        SystemInit();
        GPIO_Config();
        Read_LD = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14);
}
 
为什么结果显示“Read_LD被定义但从未使用过”?而且Read_LD也并没有获取到GPIOB的14管脚信息
 
 

blueleafzte 发表于 2014-6-19 16:06:38

回复:使用库函数如何获取GPIO的输入信息?

 自己顶一个

feel-376797 发表于 2014-6-22 08:10:18

RE:使用库函数如何获取GPIO的输入信息?

你确实没使用Read_LD,加一条Read_LD=Read_LD就不出现“Read_LD被定义但从未使用过”。

有缘于你 发表于 2014-6-22 09:13:59

RE:使用库函数如何获取GPIO的输入信息?

楼上正解,不然会被编译器优化掉的

发表于 2014-6-22 22:08:47

RE:使用库函数如何获取GPIO的输入信息?

定义成全局变量。。。

feiante-155820 发表于 2014-6-23 10:36:34

RE:使用库函数如何获取GPIO的输入信息?

是这样的,原来我也遇到这样的问题。

深秋独影 发表于 2014-6-23 12:47:21

RE:使用库函数如何获取GPIO的输入信息?

定义为全局变量或者加上Read_LD=Read_LD;就会执行的

dzc2001 发表于 2014-6-23 13:50:04

RE:使用库函数如何获取GPIO的输入信息?

编译器给你优化没了吧

aaa999kk 发表于 2014-6-23 17:20:58

RE:使用库函数如何获取GPIO的输入信息?

重新优化看看, 重新定义

Eagleson 发表于 2014-6-24 14:02:16

RE:使用库函数如何获取GPIO的输入信息?

这样子确实是只执行一次,变量会被优化掉,建议放到while里面轮询,或者用中断。再或者变量加__IO防止优化
页: [1]
查看完整版本: 使用库函数如何获取GPIO的输入信息?