矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: pdshyh

Keil uVision5点亮LED灯错误

[复制链接]
     
发表于 2021-2-4 14:29:49 | 显示全部楼层
本帖最后由 iffi123 于 2021-2-4 14:31 编辑
pdshyh 发表于 2021-2-4 11:24
您好,看了P84看到GPIO8中工作模式过去不甚清楚 学习理解大概,在点亮LED灯编程1.P43页stm32f ...


用常理推断,编译程序不是神,程序里出现常量变量和函数,如果在本文件有的它能找到,除此之外,不可能帮你找

排查故障的时候要动点脑筋,主动思考

比如 GPIO_SetBits这个函数明显不是你自己定义,如果你不告诉它,编译程序怎么知道在哪里呢?

宏定义的参数GPIOC是在stm32f10x.h定义的, 而GPIO_Pin_3则是在stm32f10x_gpio.h定义的, 而GPIO_SetBits函数源码是在stm32f10x_gpio.c里
(你可以自己去这几个文件找找是不是都能找到?)

那么你提供了足够的信息给编译程序了吗?  如果没有,如何能通过编译?
回复 支持 反对

使用道具 举报

     
发表于 2021-2-4 19:53:32 | 显示全部楼层
GPIO_RestBits(GPIOC,GPIO_Pin_3 )
应是GPIO_ResetBits(GPIOC,GPIO_Pin_3 )
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-5 09:36:49 | 显示全部楼层
iffi123 发表于 2021-2-4 14:29
用常理推断,编译程序不是神,程序里出现常量变量和函数,如果在本文件有的它能找到,除此之外,不可能 ...

谢谢指教给出思路,O(∩_∩)O哈哈~还在蹒跚学走,已经按您的提供的函数所在文件都看了都在,楼下给出了GPIO_RestBits(GPIOC,GPIO_Pin_3 )错误 回家修改后出来10多个错误,错误STM_led.axf: Error: L6200E: Symbol GPIO_ResetBits multiply defined (by stm32f10x_gpio_1.o and stm32f10x_gpio.o).本来以为一步之遥,谁知万里长征第一步。到办公室修改情况又不一样了,"..\led.axf" - 0 Error(s), 2 Warning(s).峰回路转。不知道led.axf是不是烧录文件,对怎么下载烧录还不知道怎么弄先看《STM32库开发实战指南》一步一步在做用什么问题再请教。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-5 09:41:15 | 显示全部楼层
sdxrly 发表于 2021-2-4 19:53
GPIO_RestBits(GPIOC,GPIO_Pin_3 )
应是GPIO_ResetBits(GPIOC,GPIO_Pin_3 )

谢谢指教,一波三折昨天在家把问题修改运行又出来一堆问题,STM_led.axf: Error: L6200E: Symbol GPIO_ResetBits multiply defined (by stm32f10x_gpio_1.o and stm32f10x_gpio.o).搜百度好像文件出现重定义或者加载2个.s启动文件,一头雾水。到办公室修改错误问题竟然解决了,2个警告。
回复 支持 反对

使用道具 举报

     
发表于 2021-2-5 10:25:03 | 显示全部楼层
pdshyh 发表于 2021-2-5 09:36
谢谢指教给出思路,O(∩_∩)O哈哈~还在蹒跚学走,已经按您的提供的函数所在文件都看了都在,楼下给出了GP ...

0 errors就可以下载烧写程序了,axf不是最终代码, 而是hex或者bin,  默认不生成(需要勾选)
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-5 10:37:57 | 显示全部楼层
iffi123 发表于 2021-2-5 10:25
0 errors就可以下载烧写程序了,axf不是最终代码, 而是hex或者bin,  默认不生成(需要勾选)

谢谢,我搜了axf文件可否烧录查到axf包含bin文件和调试信息等别的就没下文了,准备把办公室文件拷贝回家运行下载烧录看看,
回复 支持 反对

使用道具 举报

     
发表于 2021-2-5 10:43:08 | 显示全部楼层
pdshyh 发表于 2021-2-5 10:37
谢谢,我搜了axf文件可否烧录查到axf包含bin文件和调试信息等别的就没下文了,准备把办公室文件拷贝回家 ...

axf在mdk里可以烧写(所以默认不生成hex),如果要用其它软件烧写,大多需要hex或者bin格式
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-6 10:51:36 | 显示全部楼层
iffi123 发表于 2021-2-5 10:43
axf在mdk里可以烧写(所以默认不生成hex),如果要用其它软件烧写,大多需要hex或者bin格式

谢谢,mdk烧录还不会用了卖家提供的串口烧录软件烧录也挺方便。看介绍STM32的I/O输出输入可以设置供8种方式挺强大的。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-6 10:55:29 | 显示全部楼层
谢谢各位老师指教,跌跌撞撞终于完成STM32 led流水灯试验,调试程序部分匆匆掠过还不是很熟悉,慢慢来吧。
微信图片_20210206105146.jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-7 17:19:04 | 显示全部楼层
iffi123 发表于 2021-2-5 10:43
axf在mdk里可以烧写(所以默认不生成hex),如果要用其它软件烧写,大多需要hex或者bin格式

iffi123 老师好,跟着《STM32库开发实战指南》一步一步做中级按键篇讲的比较笼统,比葫芦画瓢没有葫芦了,对比流水灯这个葫芦有点画不下去了,就是Key.h怎么弄,key_Scan()函数是在main.c还是在Key.c,到按键篇已经有些眉目,还是生疏。
回复 支持 反对

使用道具 举报

     
发表于 2021-2-7 17:41:16 | 显示全部楼层
本帖最后由 iffi123 于 2021-2-7 17:42 编辑
pdshyh 发表于 2021-2-7 17:19
iffi123 老师好,跟着《STM32库开发实战指南》一步一步做中级按键篇讲的比较笼统,比葫芦画瓢没有葫芦了 ...


key_scan()放在main.c或者key.c其实都可以,因为这个key_scan功能很简单,全放在main.c都可以, 如果想把key的功能做成模块,方便移植或者程序复杂,才会单独做成key.h和key.c. 这只是习惯问题。

书上涉及的程序没有全部写出来(书本来是配套开发板写的),所以不全,这不要紧,了解基本的编程流程和库的使用,可以自己写,不必和书上一句不差,只要能实现你要的功能
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-8 15:24:13 | 显示全部楼层
本帖最后由 pdshyh 于 2021-2-8 16:26 编辑
iffi123 发表于 2021-2-7 17:41
key_scan()放在main.c或者key.c其实都可以,因为这个key_scan功能很简单,全放在main.c都可以, 如果想 ...


谢谢指教,按照书本弄还是不少错误,刚好找到开发板卖家带的示例有按键和《STM32库开发实战指南》按键一样已经运行没有错误 ,正在对比看
在Key.h中
“按键按下标识
KEY_ON 0
KEY_OFF 1
********/
#define KEY_ON        0
#define KEY_OFF        1”
网上搜#define是定义函数或者常量,KEY_ON 0   KEY_OFF 1部分是什么意思。
led.h
* 1 - off
- 0 - on
*/
#define ON  0
#define OFF 1
前后对比* 1 - off    - 0 - on  和下面的 ON  0   OFF 1不一样。
对库、宏和函数使用还是比较陌生。
按照示例对比函数名称大小写错了都不行 错了一个名字大小写错了3个等等总算运行通过了"..\Output\aj.axf" - 0 Error(s), 3 Warning(s).
回复 支持 反对

使用道具 举报

     
发表于 2021-2-8 19:51:27 | 显示全部楼层
本帖最后由 iffi123 于 2021-2-8 19:54 编辑
pdshyh 发表于 2021-2-8 15:24
谢谢指教,按照书本弄还是不少错误,刚好找到开发板卖家带的示例有按键和《STM32库开发实战指南》按键 ...


这些小问题,网上搜一下就有答案
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-9 09:27:41 | 显示全部楼层
iffi123 发表于 2021-2-8 19:51
这些小问题,网上搜一下就有答案

谢谢支持,#define KEY_ON 0语句在网上搜了,已经知道了 语句上面是说明部分和示例文件头部分说明不一样又和led部分也不一样有点迷惑,如果全部当做说明就理解了感谢!
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-10 16:13:47 | 显示全部楼层
完成《STM32库开发实战指南》第二个示例中级篇按键部分。

补充内容 (2021-2-19 16:45):
完成中断部分实验。
微信图片_20210210160924.jpg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-28 20:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表