weixin_50572981 2020-11-21 15:19 采纳率: 0%
浏览 28

这个函数的前半部分看不懂啊,有大佬能帮忙看看嘛,是stm32数码管显示实验的代码

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口

  • 写回答

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恢复原来出厂设置哇?