社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 219|回复: 5

[求助] 哪位大侠解释一下这段代码是啥意思啊

[复制链接]

6

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 5 天前 | 显示全部楼层 |阅读模式
uint16_t USART_ReceiveData(USART_TypeDef* USARTx)   
{
  /* Check the parameters */
  assert_param(IS_USART_ALL_PERIPH(USARTx));

  /* Receive Data */
  return (uint16_t)(USARTx->DR & (uint16_t)0x01FF);
}

此帖出自stm32/stm8论坛


回复

使用道具 举报

2867

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 5 天前 | 显示全部楼层
第一段是个宏函数,调试的时候用到。
关于dr第九位数据,你看看手册上有说。
多数情况没有用。


回复

使用道具 举报

1万

TA的帖子

15

TA的资源

版主

Rank: 6Rank: 6

发表于 5 天前 | 显示全部楼层
uint16_t USART_ReceiveData(USART_TypeDef* USARTx)   
{
  /* Check the parameters */
  assert_param(IS_USART_ALL_PERIPH(USARTx));

  /* Receive Data */
  return (uint16_t)(USARTx->DR & (uint16_t)0x01FF);
}

说得很明白了,第一个是断言,第二个是收数据
http://shop34182318.taobao.com/


回复

使用道具 举报

3257

TA的帖子

12

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

发表于 4 天前 | 显示全部楼层
assert_param,检查你传递给函数的参数是否正确。
return (uint16_t)(USARTx->DR & (uint16_t)0x01FF); 读取串口接收数据寄存器的值。并返回该值。去看串口部分的寄存器说明,不难理解。


回复

使用道具 举报

6

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

 楼主| 发表于 4 天前 | 显示全部楼层
ienglgge 发表于 2017-12-8 10:20
assert_param,检查你传递给函数的参数是否正确。
return (uint16_t)(USARTx->DR & (uint16_t)0x01FF);  ...

那是返回uint16_t这种类型的值么?

点评

是的,(USARTx->DR & (uint16_t)0x01FF),算完的值,强制转成uint16_t,返回。  详情 回复 发表于 4 天前


回复

使用道具 举报

3257

TA的帖子

12

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

发表于 4 天前 | 显示全部楼层
mr940427 发表于 2017-12-8 11:03
那是返回uint16_t这种类型的值么?

是的,(USARTx->DR & (uint16_t)0x01FF),算完的值,强制转成uint16_t,返回。


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-12-12 12:34 , Processed in 0.289850 second(s), 16 queries , Redis On.

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