OpenEdv-开源电子网

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

一个STM32 程序里的 语句问题 求原子哥 解答下

[复制链接]

15

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2014-2-23
在线时间
0 小时
发表于 2014-2-23 21:06:12 | 显示全部楼层 |阅读模式
        GPIO_Write(GPIOB, ~(Val^0xff00));// | read_val ); //写一个字数据到PB口
Delay(0x2FFFFF); // 延时
if(Val == 0x8000) Val = 1;
else Val<<=1;

这里的 语句是什么意思    程序功能是实现跑马灯   求这样写 怎么实现的

只要努力,一切皆有可能。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-2-23 21:28:01 | 显示全部楼层
二进制数0000 0000 0000 0001不停循环左移,再写到PB口,PB口就实现了跑马灯的效果
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

15

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2014-2-23
在线时间
0 小时
 楼主| 发表于 2014-2-23 21:30:05 | 显示全部楼层
~(Val^0xff00)  怎么理解
只要努力,一切皆有可能。
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-2-23 21:36:01 | 显示全部楼层
异或运算,假如Val=0x0001,(Val^0XFF00)=0xFF01,作用相当于给高八位取反,低八位不变,

接着~(Val^0XFF00)=0X00FE
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-2-23 21:41:20 | 显示全部楼层
假如Val=0x0100,(Val^0XFF00)=0xFE00,

~(Val^0XFF00)=0X01FF

高八位给1是亮,低八位给0是亮?  呵呵,怎么回事
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

15

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2014-2-23
在线时间
0 小时
 楼主| 发表于 2014-2-23 21:52:17 | 显示全部楼层
开发板的程序 应该是的 高8为1亮 第八位0亮  我明白这段程序的意思了  谢谢!
只要努力,一切皆有可能。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 05:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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