[MINI51] Mini51第一帖——工程模板+GPIO

[复制链接]
7970|34
 楼主| lixiaoxu2meng 发表于 2012-1-13 14:42 | 显示全部楼层 |阅读模式
本帖最后由 hotpower 于 2012-9-22 12:39 编辑

首先非常感谢新唐,感谢菜农老师,特别感谢9G.
在这里还有个小插曲,板子回来后迫不及待想玩一玩,于是抽出时间建立MDK的工程,编了简单的小程序LED,本来以为会一帆风顺的,哪知道
MDK下载不了,后来以为我的工程没配置对,或者驱动没更新,于是我又重新建工程配置工程,驱动也重装,结果还是不行,试了几遍就是不
行,后来我怀疑应该不是工程的问题,于是我昨天又用ICP试了一下,发现也连接不上读不回来芯片信息,我郁闷了,我试了几十次,也不行
后来没有办法只好找9G,9G让我换了个电容,刚换完好用了连接上了,心情非常激动,以为解决了,但是悲剧又出现了,等我在连接时,又链
接不上了,没办法只能不断地尝试,一下午没干别的。也没弄好,心情极度郁闷。本来想晚上回去弄弄的但是实在没心情,回去后想放松一
下心情 看了个电影—— 杨门女将之军令如山,这个电影实在不怎么地。言归正传,今天上午正好有时间,继续弄,期间又不断地请教9G,
后来发现一个现象就是:一按复位键,电源灯就熄灭,我本人在软件上真的属于菜鸟,硬件更不用提了连鸟屎都谈不上,于是又请教9G,9G
说这个现象不正常,不可能出现这种情况。于是我硬着头皮检查电路,检查了下载板与主板的链接都正常,后来检查了一下板子电压,问题
来了,发现主板的电压2.2V左右,这就不正常了,我又一遍一遍的检查板子,发现偶尔会正常,后来发现个规律就是用手按一下下载板,主
板的电压就正常,我认为是哪里虚焊了,经过仔细检查发现,下载板与主板之间的GND链接(就是那个电阻腿链接的地方)虚焊,上面有1V的
压降,动一动板子还会断,再动动又好了,问题总算找到了,于是赶紧重焊了一下,打开ICP链接成功,特意实验了下,每次都能成功。问题
总算解决了,心情比较复杂,高兴问题解决了,反之我如果掌握一点硬件基础问题解决的也不会这么久,硬件啊真得学点啊。在这里真心的要感谢9G细心的指导。
下面上代码:main文件:
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /* */
  3. /* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved. */
  4. /* */
  5. /*---------------------------------------------------------------------------------------------------------*/
  6. #include "includes.h" //包含所需的头文件
  7. /*************************************************************************************
  8. ** Function name: main
  9. ** Descriptions: 工程模板+ IO口操作
  10. ** input parameters: 无
  11. ** output parameters: 无
  12. ** Returned value: 无
  13. *************************************************************************************/
  14. int main (void)
  15. {
  16. Set_System(); //调用系统初始化函数
  17. while(1)
  18. {
  19. DrvGPIO_ClrBit(E_PORT3, 1); //LED0-ON
  20. delay_ms(200);
  21. DrvGPIO_SetBit(E_PORT3, 1); //LED0-OFF
  22. DrvGPIO_ClrBit(E_PORT3, 6); //LED1-ON
  23. delay_ms(200);
  24. DrvGPIO_SetBit(E_PORT3, 6); //LED1-OFF
  25. DrvGPIO_ClrBit(E_PORT5, 2); //LED2-ON
  26. delay_ms(200);
  27. DrvGPIO_SetBit(E_PORT5, 2); //LED2-OFF
  28. DrvGPIO_ClrBit(E_PORT2, 6); //LED3-ON
  29. delay_ms(200);
  30. DrvGPIO_SetBit(E_PORT2, 6); //LED3-OFF
  31. }
  32. }
hw_config.c文件
  1. #include "includes.h" //包含所需的头文件
  2. /*************************************************************************************
  3. ** Function name: Set_System
  4. ** Descriptions: 封装一些初始化模块
  5. ** input parameters: none
  6. ** output parameters: none
  7. ** Returned value: none
  8. *************************************************************************************/
  9. void Set_System(void)
  10. {
  11. RCC_Configuration(); //配置系统时钟

  12. GPIO_Configuration(); //配置GPIO
  13. }
  14. /*************************************************************************************
  15. ** Function name: RCC_Configuration
  16. ** Descriptions: 系统时钟源设置
  17. ** input parameters: none
  18. ** output parameters: none
  19. ** Returned value: none
  20. *************************************************************************************/
  21. void RCC_Configuration(void)
  22. {
  23. UNLOCKREG(); // 对写保护位操作时 需要一次向0x50000 0100写入 0x59,0x16,0x88
  24. DrvSYS_Open(XTL_CLK); // Enable high external clock and use it as system clock (HCLK)
  25. while (DrvSYS_GetChipClockSourceStatus(XTL_CLK) != 1); //等待外部12MHZ晶振就绪
  26. LOCKREG(); // 向“0x5000_0100”写入任何值,就可以重锁保护寄存器
  27. }
  28. /*************************************************************************************
  29. ** Function name: GPIO_Configuration
  30. ** Descriptions: GPIO配置
  31. ** input parameters: none
  32. ** output parameters: none
  33. ** Returned value: none
  34. *************************************************************************************/
  35. void GPIO_Configuration()
  36. {
  37. DrvGPIO_Open(E_PORT3, E_PIN1, E_IO_OUTPUT); //LED0
  38. DrvGPIO_Open(E_PORT3, E_PIN6, E_IO_OUTPUT); //LED1
  39. DrvGPIO_Open(E_PORT5, E_PIN2, E_IO_OUTPUT); //LED2
  40. DrvGPIO_Open(E_PORT2, E_PIN6, E_IO_OUTPUT); //LED3
  41. }
  42. /*************************************************************************************
  43. ** Function name: delay_ms
  44. ** Descriptions: 1ms(晶振为12MHZ)延时子程序
  45. ** input parameters: count
  46. ** output parameters: none
  47. ** Returned value: none
  48. *************************************************************************************/
  49. void delay_ms(uint32_t count)
  50. {
  51. uint32_t i,j;
  52. for(i=count;i>0;i--)
  53. for(j=2395;j>0;j--);
  54. }
hw_config.h
  1. #ifndef __HW_CONFIG_H__
  2. #define __HW_CONFIG_H__
  3. void Set_System(void);
  4. void RCC_Configuration(void);
  5. void GPIO_Configuration(void);
  6. void delay_ms(uint32_t count);
  7. #endif
includes.h
  1. #ifndef __INCLUDES_H__
  2. #define __INCLUDES_H__
  3. //库文件
  4. #include <stdio.h>
  5. #include "Mini51.h"
  6. #include "DrvGPIO.h"
  7. #include "DrvSYS.h"
  8. //自己定义的文件
  9. #include "variables.h"
  10. #include "hw_config.h"
  11. #endif

工程截图

运行

压缩包

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
Swallow_0322 发表于 2012-1-13 14:48 | 显示全部楼层
沙发!最近还没抽出时间玩,年前估计够呛,过两天还要回家接丈母娘来过年...
Swallow_0322 发表于 2012-1-13 14:48 | 显示全部楼层
9G让你换了哪个电容啊?
 楼主| lixiaoxu2meng 发表于 2012-1-13 14:49 | 显示全部楼层
C2 106换成104
 楼主| lixiaoxu2meng 发表于 2012-1-13 14:51 | 显示全部楼层
2# Swallow_0322
三心前辈 模范姑爷啊:lol
Swallow_0322 发表于 2012-1-13 14:56 | 显示全部楼层
2# Swallow_0322  
三心前辈 模范姑爷啊:lol
lixiaoxu2meng 发表于 2012-1-13 14:51


(*^__^*) 嘻嘻 老婆还一个月生了,丈母娘是来帮我照顾LP的!
 楼主| lixiaoxu2meng 发表于 2012-1-13 15:00 | 显示全部楼层
6# Swallow_0322
恭喜前辈当爸爸了
kyzb001 发表于 2012-1-13 15:45 | 显示全部楼层
我发现好多人在这个时候生娃娃  :lol

阳春三月:lol
 楼主| lixiaoxu2meng 发表于 2012-1-13 15:47 | 显示全部楼层
8# kyzb001
刻意为之?不会吧:lol
hotpower 发表于 2012-1-13 16:01 | 显示全部楼层
非常好!
Cortex-M0 发表于 2012-1-13 18:56 | 显示全部楼层
LZ很细心,赞一个~~~
plc_avr 发表于 2012-1-13 23:02 | 显示全部楼层
顶!困的不行了,才回来。准备迷糊,MINI51得到年后才能玩了。
 楼主| lixiaoxu2meng 发表于 2012-1-14 07:44 | 显示全部楼层
10# hotpower
谢谢老师
 楼主| lixiaoxu2meng 发表于 2012-1-14 07:44 | 显示全部楼层
11# Cortex-M0
谢谢123jj
 楼主| lixiaoxu2meng 发表于 2012-1-14 07:45 | 显示全部楼层
12# plc_avr
烈火哥最近很累啊
Swallow_0322 发表于 2012-1-14 07:54 | 显示全部楼层
6# Swallow_0322  
恭喜前辈当爸爸了
lixiaoxu2meng 发表于 2012-1-13 15:00


谢谢!
Swallow_0322 发表于 2012-1-14 07:56 | 显示全部楼层
8# kyzb001  

刻意为之?不会吧:lol
lixiaoxu2meng 发表于 2012-1-13 15:47


刻意为之? 晕!这也能刻意!
 楼主| lixiaoxu2meng 发表于 2012-1-14 08:00 | 显示全部楼层
17# Swallow_0322 :lol
Ryanhsiung 发表于 2012-1-14 08:26 | 显示全部楼层
顶一下,MINI51的库与100系列的库一样么?
  MINI51能用100系列的库么??
    要是能的话是最好的!!!
 楼主| lixiaoxu2meng 发表于 2012-1-14 08:44 | 显示全部楼层
19# Ryanhsiung
不一样 再下个51库吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:淡定,不以物喜,不以己悲。

0

主题

1679

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部