STM32程序编译出现错误,是设置错误造成的,解决方法如下:
1、首先打开STM32 ST-LINK Utility,依次选择“File ->Open File...”或者按快捷键“CTRL + O”准备打开一个烧录文件。
2、找到需要烧录的HEX文件,选择“打开”。
3、软件会将该HEX文件加载到窗口,同时会在下面的消息框显示文件的校验码。
4、然后点击菜单栏的“Target ->Connect”开始连接目标。
5、开始连接目标,成功后会在软件工具栏左侧显示目标芯片信息,同时会在下面的消息框进行相关提示。
有问题的那个程序u8 ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)
只在上面那条指令采集了一次按键数据。
等到执行到 while(!ReadValue)//等待按键被放开 这条指令时
数据仍然是上次采集到的那个值代表按键按下,(!ReadValue)这个值永远成立,所以无法代表按键断开。所以程序一直卡死在这条指令上。如果要通过就必须在判据里重新读取按键状态,像正确的程序那样用这样的指令
while(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10))//等待按键被放开
另外因为你只读取了一次按键状态,所以下面那么多一堆软件消除抖动的程序白写了。
综上,正确的程序在每个判断的时刻都要重新读取下按键状态。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)