使用库函数如何获取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管脚信息
回复:使用库函数如何获取GPIO的输入信息?
自己顶一个RE:使用库函数如何获取GPIO的输入信息?
你确实没使用Read_LD,加一条Read_LD=Read_LD就不出现“Read_LD被定义但从未使用过”。RE:使用库函数如何获取GPIO的输入信息?
楼上正解,不然会被编译器优化掉的RE:使用库函数如何获取GPIO的输入信息?
定义成全局变量。。。RE:使用库函数如何获取GPIO的输入信息?
是这样的,原来我也遇到这样的问题。RE:使用库函数如何获取GPIO的输入信息?
定义为全局变量或者加上Read_LD=Read_LD;就会执行的RE:使用库函数如何获取GPIO的输入信息?
编译器给你优化没了吧RE:使用库函数如何获取GPIO的输入信息?
重新优化看看, 重新定义RE:使用库函数如何获取GPIO的输入信息?
这样子确实是只执行一次,变量会被优化掉,建议放到while里面轮询,或者用中断。再或者变量加__IO防止优化
页:
[1]