void SMG_WriteData(u8 data , u8 wu)
{
u16 dudata , middata;
middata = (u16)data;
middata <<= 8; //把要显示的段码移到高8位位置
dudata = GPIO_ReadOutputData(GPIOB); //读取原PB口的输出数据,目的要保留PB口低8位的原来状态保持不变
dudata &= 0x00ff; //保持原来PB口低8位输出的数据不变,同时清零高8位
dudata |= middata; //把高8位与原PB口低8位整合在一起写出PB口
GPIO_Write(GPIOB , dudata); //执行写PB口
这个函数的前半部分看不懂啊,有大佬能帮忙看看嘛,是stm32数码管显示实验的代码
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
paldier 2020-11-21 20:19关注转化成u16类型防止溢出,移到高8位位置,你转换成二进制就看懂了,后面的运算也一样,这都是非常非常基础的东西,如果你这都不懂,直接去补,不用往下看了
解决 无用评论 打赏 举报
悬赏问题
- ¥15 (标签-STM32|关键词-智能小车)
- ¥20 关于#stm32#的问题,请各位专家解答!
- ¥15 (标签-python)
- ¥15 第一个已完成,求第二个做法
- ¥20 搭建awx,试了很多版本都有错
- ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
- ¥15 activiti工作流问题,求解答
- ¥15 有人写过RPA后台管理系统么?
- ¥15 Bioage计算生物学年龄
- ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?