OpenEdv-开源电子网

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

开帖记录自己的学习心得

[复制链接]

4

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-10-9
在线时间
0 小时
发表于 2012-10-19 14:42:12 | 显示全部楼层 |阅读模式
实验一 跑马灯
各个外设的硬件层驱动文件 如led.c 里面只#include 自己的头文件 如#include “led.h”
然后在其头文件里再#include 其需要的库文件 如led.h里#include “sys.h”
这样比较条理
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-10-9
在线时间
0 小时
 楼主| 发表于 2012-10-19 14:52:07 | 显示全部楼层
依据此思路可以看出 
system中最基本的头文件是 数据类型的定义stm32f10x_type.h
stm32f10x_conf.h和cortexm3_macro.h都引用了它
这为我们写头文件理清了思路

所以在stm32f10x_map.h里其实不需要再#include stm32f10x_type.h 因为它已经#include "stm32f10x_conf.h"和
#include "cortexm3_macro.h"
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-19 15:08:07 | 显示全部楼层
顶楼主。
回复 支持 反对

使用道具 举报

4

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-10-9
在线时间
0 小时
 楼主| 发表于 2012-10-19 15:37:39 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
EXT TIM_TypeDef   *TIM2

EXT这个命令是干嘛的 为什么用在debug模式下? 
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-19 17:53:32 | 显示全部楼层
哪里看来的。
你那头像怎么看着像小梁朝伟啊...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-10-9
在线时间
0 小时
 楼主| 发表于 2012-10-19 20:36:35 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
哈哈 是个外国人 

在stm32f10x_map.h 后面debug mode 我查了下它的意思是extern 
回复 支持 反对

使用道具 举报

4

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-10-9
在线时间
0 小时
 楼主| 发表于 2012-10-19 20:39:21 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
问下实验三 按键实验里的 键值检测程序

如果选择了0模式的话 每次进入scan函数
static u8 key_up=1;
难道不会把key_up置1吗?

u8 KEY_Scan(u8 mode) 
{     
  static u8 key_up=1;//按键按松开标志 
  if(mode)key_up=1;    //支持连按       
  if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==1)) 
  { 
    delay_ms(10);//去抖动   
    key_up=0; 
    if(KEY0==0)return 1; 
    else if(KEY1==0)return 2; 
    else if(KEY2==0)return 3; 
    else if(KEY3==1)return 4; 
  }else if(KEY0==1&&KEY1==1&&KEY2==1&&KEY3==0)key_up=1;       
    return 0;// 无按键按下 
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-19 21:23:29 | 显示全部楼层
if(mode)key_up=1;    //支持连按   
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2012-10-20
在线时间
0 小时
发表于 2012-10-20 11:03:20 | 显示全部楼层
如果选择了0模式的话 每次进入scan函数 
static u8 key_up=1; 
难道不会把key_up置1吗? 

u8 KEY_Scan(u8 mode)  
{      
  static u8 key_up=1;//按键按松开标志  
  if(mode)key_up=1;    //支持连按        
  if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==1))  
  {  
    delay_ms(10);//去抖动    
    key_up=0;  
    if(KEY0==0)return 1;  
    else if(KEY1==0)return 2;  
    else if(KEY2==0)return 3;  
    else if(KEY3==1)return 4;  
  }else if(KEY0==1&&KEY1==1&&KEY2==1&&KEY3==0)key_up=1;        
    return 0;// 无按键按下  


你好,我是刚接触这块,以前做桌面应用程序的,
  static u8 key_up=1;//按键按松开标志  
  if(mode)key_up=1;    //支持连按  
  对这里依然不理解, 
  mode从main函数传过来的是0,按理说,每次调用KEY_Scan(0)时都不会执行到
if(mode)key_up=1;   //这里的赋值.

 我把这行去掉,把程序改成:
  static u8 key_up=1;//按键按松开标志  
  key_up=1;    //支持连按  
 就会出现问题(不支持连按)
 
 按我的理解,这里不过是对这个变量多了次赋值.为什么就会出现这个问题了.
 
 对电子这块,不太懂,实在没理解.
回复 支持 反对

使用道具 举报

22

主题

436

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2012-8-6
在线时间
2 小时
发表于 2012-10-20 13:12:19 | 显示全部楼层
顶楼主
回复 支持 反对

使用道具 举报

4

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-10-9
在线时间
0 小时
 楼主| 发表于 2012-10-20 16:29:54 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
每次进入scan函数 下面这句是不是都会把key_up置1???
static u8 key_up=1;
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-20 22:44:11 | 显示全部楼层
仿真下看看吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2013-5-6
在线时间
3 小时
发表于 2013-5-25 22:14:38 | 显示全部楼层
 u8 KEY_Scan(u8 mode)

 static u8 key_up=1;//按键按松开标志
 if(mode)key_up=1;  //支持连按   
 if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==1))
 {
  delay_ms(10);//去抖动
  key_up=0;
  if(KEY0==0)return 1;
  else if(KEY1==0)return 2;
  else if(KEY2==0)return 3;
  else if(KEY3==1)return 4;
 }else if(KEY0==1&&KEY1==1&&KEY2==1&&KEY3==0)key_up=1;     
  return 0;// 无按键按下
}


 static u8 key_up=1;//按键按松开标志
 if(mode)key_up=1;  //支持连按   
这两句的作用是什么?老弟 请指点
回复 支持 反对

使用道具 举报

22

主题

436

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2012-8-6
在线时间
2 小时
发表于 2013-5-26 11:23:04 | 显示全部楼层
喝喝
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-19 08:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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