OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4814|回复: 30

萌新快被劝退在点亮小灯泡了,求大佬们指教

[复制链接]

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
发表于 2020-11-30 21:34:42 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-2 12:46:02 | 显示全部楼层
led.h
  1. #ifndef _LED_H_
  2. #define _LED_H_
  3. void led_init(void);
  4. #endif
复制代码

led.c
  1. /*
  2. LED0--PD2
  3. LED1--PA8
  4. */
  5. #include "stm32f10x.h"
  6. #include "led.h"
  7. void led_init()
  8. {       
  9.         RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD,ENABLE);//使能GPIOD
  10.         RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA
  11.         GPIO_InitTypeDef GPIO__A;
  12.         GPIO__A.GPIO_Mode = GPIO_Mode_Out_PP;
  13.         GPIO__A.GPIO_Pin = GPIO_Pin_8;
  14.         GPIO__A.GPIO_Speed = GPIO_Speed_50MHz;
  15.         GPIO_Init(GPIOA,&GPIO__A);//配置PA8
  16.         GPIO_InitTypeDef GPIO__D;
  17.         GPIO__D.GPIO_Mode = GPIO_Mode_Out_PP;
  18.         GPIO__D.GPIO_Pin = GPIO_Pin_2;
  19.         GPIO__D.GPIO_Speed = GPIO_Speed_50MHz;
  20.         GPIO_Init(GPIOD,&GPIO__D);//配置PD2
  21.         GPIO_SetBits(GPIOA,GPIO_Pin_8);
  22.         GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED初始状态为关
  23. }
复制代码

main.c
  1. /*
  2. LED0--PD2
  3. LED1--PA8
  4. */
  5. #include "stm32f10x.h"
  6. #include "led.h"
  7. #include "delay.h"
  8. //#include "sys.h"
  9. #define led1on GPIO_ResetBits (GPIOA,GPIO_Pin_8);
  10. #define led1off GPIO_SetBits (GPIOA,GPIO_Pin_8);
  11. #define led0on GPIO_ResetBits (GPIOD,GPIO_Pin_2);
  12. #define led0off GPIO_SetBits (GPIOD,GPIO_Pin_2);
  13. int main(void)
  14. {       
  15. delay_init();
  16. led_init();
  17. delay_ms(500);
  18. while (1)
  19. {
  20.         led1on;
  21.         delay_ms(500);
  22.         led1off;
  23.         led0on;
  24.         delay_ms(500);
  25.         led0off;
  26. }
  27. }

复制代码

正点原子mini板,STlink下载仿真
下载例程LED可以亮

附下载仿真截图
断点2,LED0on

断点2 LED0on.png
断点1,LED1on
断点1 LED1on.png
下载
下载.png



回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2020-12-1 11:45:44 | 显示全部楼层
这是??
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2020-12-1 14:59:50 | 显示全部楼层
STM32点亮LED灯,只需要配置要gpio口的电平就可以啦
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 16:15:14 | 显示全部楼层
弦子的弦 发表于 2020-12-1 14:59
STM32点亮LED灯,只需要配置要gpio口的电平就可以啦

阿巴阿巴阿巴阿巴我明明编辑了一大堆内容为什么发表出来就只有一个标题了
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 16:21:35 | 显示全部楼层

阿巴阿巴阿巴可能是我操作问题只发布了标题,内容我再补上
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2020-12-1 16:52:31 | 显示全部楼层
1.设置时钟,即使不配置也能运行,最多时间不对
2.开启相应的引脚时钟,即使能相应的外设
3.根据需求配置相应外设,比如驱动LED根据相应的需要,设置IO推挽或者其他模式
4.根据LED电路提供相应电位.
5.这是最主要的一点,看了原子的教程还被LED难住,不建议学习STM32....
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 16:53:32 | 显示全部楼层
弦子的弦 发表于 2020-12-1 14:59
STM32点亮LED灯,只需要配置要gpio口的电平就可以啦

发帖还有字数限制,等我看到字数限制的时候返回上一个界面直接给我砍掉了下面的一大半,那我就一条一条发吧。不得不说同一段内容码三次真的挺让人恼火的
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 16:58:38 | 显示全部楼层
用了两块STM32F103C8T6
每一个都下载了三种工程文件
第一种我跟着原子哥的教程几乎照抄只改了io口的
  1. #include "stm32f10x.h"
  2. void _led_init_(void)
  3. {
  4.         GPIO_InitTypeDef GPIO_InitStructure;
  5.         RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,ENABLE);
  6.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  7.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
  8.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  9.         GPIO_Init(GPIOA,&GPIO_InitStructure);
  10.         GPIO_SetBits(GPIOA,GPIO_Pin_1);
  11. }

  12. int main(void)
  13. {
  14.         int z = 5000;
  15.         _led_init_();
  16.         while (1)
  17. {
  18. GPIO_SetBits(GPIOA,GPIO_Pin_1);
  19.         z = 5000;
  20.         while (z--);
  21. GPIO_ResetBits(GPIOA,GPIO_Pin_1);
  22.         z = 5000;
  23.         while (z--);
  24. }
  25. }
复制代码

烧录下载前后两块板子PA1的电压没有任何改变,一个0.8一个0.5测量时间大于5秒
第二个工程文件是我从论坛STM32F103C8T6专区找到的例程,改源码编译的
  1. /**************************************
  2. * 文件名  :led.c
  3. *         
  4. * 实验平台:STM32F103C8T6
  5. * 硬件连接:LED端口PC13,PB12,
  6. * 备注:修改led端口时要同时修改gpio和pin
  7.          同时加入非精确定时以便调试时使用

  8. *********************************************************/

  9. #include "led.h"

  10. #define LED GPIO_Pin_1

  11. /***************  配置LED用到的I/O口 *******************/
  12. void LED_GPIO_Config(void)       
  13. {
  14.   GPIO_InitTypeDef GPIO_InitStructure;
  15.   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); // 使能端口时钟  
  16.   GPIO_InitStructure.GPIO_Pin = LED;       
  17.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
  18.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  19.   GPIO_Init(GPIOA, &GPIO_InitStructure);  //初始化端口
  20.   GPIO_SetBits(GPIOA, LED);         // 关闭所有LED
  21. }
  22. void LED_Toggle(void)
  23. {
  24.         GPIO_WriteBit(GPIOA, LED, (BitAction)((1-GPIO_ReadOutputDataBit(GPIOB, LED))));//led电平翻转
  25. }
  26. void LED_On()
  27. {
  28.         GPIO_WriteBit(GPIOA, LED,(BitAction)0);
  29. }
  30. void LED_Off()
  31. {
  32.         GPIO_WriteBit(GPIOA, LED,(BitAction)1);
  33. }

  34. void Delayus(u16 i)
  35. {
  36.         unsigned char t = 0;
  37.         for(;i>0;i--)
  38.         {
  39.                 for(t=0;t<2;t++)
  40.                 {}
  41.         }
  42. }
  43. void Delayms(u16 t)
  44. {
  45.         while(t--)
  46.         {
  47.                 Delayus(1000);
  48.         }
  49. }
  50. void LED_Twinkle()
  51. {
  52.         LED_On();
  53.         Delayms(10);
  54. }
  55. /******main.c********/
  56. #include "stm32f10x.h"
  57. #include "led.h"


  58. int main(void)
  59. {
  60.        
  61.   SystemInit();//配置系统时钟为72M       
  62.         LED_GPIO_Config();//led初始化
  63.        
  64.        
  65.   while (1)
  66.   {
  67.                 LED_Twinkle();
  68.                 Delayms(10);
  69.   }
  70. }
复制代码
下载前后依旧PA1电压没有任何改变,两块板子都是
然后我就直接把例程本来的工程文件下载进去,例程用的是PB12口,测出来电压也没有任何改变


回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2020-12-1 17:11:53 | 显示全部楼层
已经过了能裸眼看程序的年纪了。。。
我感觉你改的有点多,你买了原子的开发板没?
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 17:15:23 | 显示全部楼层
第一块板子直接用USB下载了三种工程文件没能达成目标后买了第二块板子
第二块板子使用USB会导致设备描述符请求失败所以用串口下载
两块板子和串口转换器都是CH340
当然每次下载后虽然设置了下载后运行但还是都有复位断电
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 17:23:21 | 显示全部楼层
聚东风 发表于 2020-12-1 16:52
1.设置时钟,即使不配置也能运行,最多时间不对
2.开启相应的引脚时钟,即使能相应的外设
3.根据需求配置相 ...

我怎么看都觉得你前面四条可以复制粘贴到任何单片机帖子下面,第五条有攻击性
既然这么懂为啥不实际点解决问题而要在这卖弄加攻击呢
况且你卖弄的也是基本知识,时钟使能只是我说了照抄抄下来的,在正常思考创作失败的时候照抄纠错是最好的办法
回复

使用道具 举报

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2020-11-24
在线时间
33 小时
发表于 2020-12-1 17:28:32 | 显示全部楼层
应该不是程序问题,不知道你是用USB烧写的程序还是用JTAG?
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-12-1
在线时间
1 小时
发表于 2020-12-1 17:34:42 | 显示全部楼层
第一段程序:05行,clock使能函数不对
第二段程序:55行,LED_Twinkle函数只调用了LED_On(),没有调用LED_Off
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 17:56:11 | 显示全部楼层
弦子的弦 发表于 2020-12-1 17:11
已经过了能裸眼看程序的年纪了。。。
我感觉你改的有点多,你买了原子的开发板没?

之前用的别家的板子,原子的开发板淘宝在送了,即使原子的开发板学会了但是同样STM32F103只是版本不完全一样的板子就不了那算哪门子学习
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 18:24:02 | 显示全部楼层
本帖最后由 Tokite 于 2020-12-1 18:25 编辑
zeromission 发表于 2020-12-1 17:34
第一段程序:05行,clock使能函数不对
第二段程序:55行,LED_Twinkle函数只调用了LED_On(),没有调用LED_ ...

为什么一定要OFF,我让小灯泡一直亮着不行吗。现在主要问题是下载后PA1口电平根本没变化,OFF是因为电平没变化我删掉的
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-1 18:26:27 | 显示全部楼层
BurgLi 发表于 2020-12-1 17:28
应该不是程序问题,不知道你是用USB烧写的程序还是用JTAG?

第一块板子USB,第二块串口。转码芯片全都是CH340
回复

使用道具 举报

0

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2583
金钱
2583
注册时间
2019-10-18
在线时间
414 小时
发表于 2020-12-1 18:40:11 | 显示全部楼层
串口下载程序的
你还要看一下你的启动模式是不是对了
下载完一定要改回flash启动,下载的时候是isp模式.你改了没有,改了的话是不是改到ram模式去了
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2020-12-1 20:35:23 | 显示全部楼层
本帖最后由 聚东风 于 2020-12-1 20:37 编辑
Tokite 发表于 2020-12-1 17:23
我怎么看都觉得你前面四条可以复制粘贴到任何单片机帖子下面,第五条有攻击性
既然这么懂为啥不实际点解 ...

不是卖弄,是如果是初学,建议买原子的板子,一步步的往下走,原子的教程看不明白,其他的教程,更恐怖
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2020-12-1 20:39:43 | 显示全部楼层
还有建议仿真进去看,如果不会,先学仿真
回复

使用道具 举报

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2020-11-24
在线时间
33 小时
发表于 2020-12-2 09:53:12 | 显示全部楼层
Tokite 发表于 2020-12-1 18:26
第一块板子USB,第二块串口。转码芯片全都是CH340

使用串口下载,涉及到BOOT方式,就是程序从哪里开始运行的问题。你看一下你的BOOT0和BOOT1的配置吧。高端单片机和arm A系列处理器都有相关的硬件配置BOOT方式。
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2020-12-2 10:05:09 | 显示全部楼层
Tokite 发表于 2020-12-1 17:23
我怎么看都觉得你前面四条可以复制粘贴到任何单片机帖子下面,第五条有攻击性
既然这么懂为啥不实际点解 ...

有一句说一句 基本知识才是解决问题的根本 你现在的问题是根本就没发现问题在哪儿 怎么解决
建议一步一步检查 比如新建工程的时候芯片选对了吗···
世界和平
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2020-12-2 10:30:49 | 显示全部楼层
我觉得你还是被劝退吧,延迟程序写的能看?
学无止境
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-2 12:23:48 | 显示全部楼层
本帖最后由 Tokite 于 2020-12-2 12:28 编辑
jermy_z 发表于 2020-12-2 10:30
我觉得你还是被劝退吧,延迟程序写的能看?

延迟代码是没能实现他的延迟功能还是会导致IO口没法输出高电平?
怎么一个个这么能扯些无关紧要的东西
看不出问题就鸡蛋里挑骨头去水帖?
不引用延迟头文件还有更快的延迟方法吗?
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-2 12:33:00 | 显示全部楼层
礼拜天真好 发表于 2020-12-2 10:05
有一句说一句 基本知识才是解决问题的根本 你现在的问题是根本就没发现问题在哪儿 怎么解决
建议一步一 ...

发现问题在哪也没必要来这问了,几乎是照抄教程代码也没用,甚至把例程工程下载进去都没反应。其他的不敢说,原子哥手把手带你学STM32那个视频一直到蜂鸣器我看了起码两遍按照他讲的绝对没有任何错误。如果这是常见的小错误我也不会花这么长时间发帖回复了。
回复

使用道具 举报

33

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
515
金钱
515
注册时间
2020-11-26
在线时间
78 小时
 楼主| 发表于 2020-12-2 12:49:02 | 显示全部楼层
BurgLi 发表于 2020-12-2 09:53
使用串口下载,涉及到BOOT方式,就是程序从哪里开始运行的问题。你看一下你的BOOT0和BOOT1的配置吧。高端 ...

大佬,现在用正点原子STlink下载还是老问题,求指教。具体置顶了
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3888
金钱
3888
注册时间
2017-3-7
在线时间
1694 小时
发表于 2020-12-2 12:49:35 | 显示全部楼层
下个cubeide,配置下晶振,引脚,加个延时,你的这个需求很容易验证
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2020-12-2 12:56:35 | 显示全部楼层
Tokite 发表于 2020-12-2 12:23
延迟代码是没能实现他的延迟功能还是会导致IO口没法输出高电平?
怎么一个个这么能扯些无关紧要的东西
...

呵呵 你还是自己劝退自己吧
学无止境
回复

使用道具 举报

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2020-11-24
在线时间
33 小时
发表于 2020-12-2 13:53:11 | 显示全部楼层
Tokite 发表于 2020-12-2 12:49
大佬,现在用正点原子STlink下载还是老问题,求指教。具体置顶了

我不是什么大佬。最近刚好使用STM32F103C8T6做东西,有具体问题,还是微信仔细说吧,论坛效率太低了。我的微信:wanaiavu。

只分析问题,不接收广告,谢谢!
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2020-12-2 14:19:57 | 显示全部楼层
Tokite 发表于 2020-12-1 17:56
之前用的别家的板子,原子的开发板淘宝在送了,即使原子的开发板学会了但是同样STM32F103只是版本不完全 ...

学习是需要循序渐进的,如果你用原子的例子(自己不作任何修改)然后再下载到原子的开发板上,观察led灯的亮灭,这是第一步。是你分析后续问题的基础,
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-8-30
在线时间
1 小时
发表于 2020-12-2 15:29:47 | 显示全部楼层
按照我的想法,还是劝退....或者 先去吧51单片机看一遍
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 07:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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