OpenEdv-开源电子网

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

位操作的问题。。

[复制链接]

18

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
377
金钱
377
注册时间
2013-3-1
在线时间
50 小时
发表于 2013-6-16 17:05:22 | 显示全部楼层 |阅读模式
   最近看一个加速度计  iic的例子,里面有  setiohi(led);setiolo(led);setiohi(sda);。。。这样的语句。望文生义应该是拉高或者拉低这个IO口了。想问一下这是怎么实现的呢?那个例子没有说明是哪种单片机上的例子。假如要移植到51上的话 ,如何处理
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-16 17:52:16 | 显示全部楼层
具体应该进去这个函数看看.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-5-21
在线时间
0 小时
发表于 2013-6-16 18:41:50 | 显示全部楼层
STM32位操作主要由两种形式,一种是原子哥例程里的那种,直接地址操作的,还有一种就是用#define的操作

如 #define LED_1 GPIOA->ODR|=1<<X;
     #define LED_0 GPIOA->ODR&=~(1<<X);
原理上就基本上这两种了(我知道的)你那个函数得进去看看估计也是这样他可能把led sda赋值了,然后进去再弄个判断。>
回复 支持 反对

使用道具 举报

18

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
377
金钱
377
注册时间
2013-3-1
在线时间
50 小时
 楼主| 发表于 2013-6-16 19:25:01 | 显示全部楼层
那个例子里面没有和IO口相关的子函数。但是根据这些调用函数可以看出来led和sda等的肯定都是接到单片机的某IO上的,具体用#define还是什么都可以。我现在的问题就是 如何在一个函数可以用来把某一位IO拉高或者拉低。然后这个函数还是通用函数,setiohi(x),里面的x代表某一位IO,给定不同的IO就可以实现将这一位拉高。 不晓得描述清楚没


我把代码传上来了。可以帮我看看

bma150.c

23.92 KB, 下载次数: 40

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 19:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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