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

2019-03-23 15:23发布

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);
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
ienglgge
1楼-- · 2019-03-24 03:38
assert_param,检查你传递给函数的参数是否正确。
return (uint16_t)(USARTx->DR & (uint16_t)0x01FF); 读取串口接收数据寄存器的值。并返回该值。去看串口部分的寄存器说明,不难理解。
Li_Lei
2楼-- · 2019-03-23 18:48
/ 第一段是个宏函数,调试的时候用到。
关于dr第九位数据,你看看手册上有说。
多数情况没有用。
ddllxxrr
3楼-- · 2019-03-24 00:29
 精彩回答 2  元偷偷看……
mr940427
4楼-- · 2019-03-24 08:41
ienglgge 发表于 2017-12-8 10:20
assert_param,检查你传递给函数的参数是否正确。
return (uint16_t)(USARTx->DR & (uint16_t)0x01FF);  ...

那是返回uint16_t这种类型的值么?
ienglgge
5楼-- · 2019-03-24 11:48
 精彩回答 2  元偷偷看……
DSCX05
6楼-- · 2019-03-24 13:58

mr940427 发表于 2017-12-8 11:03
那是返回uint16_t这种类型的值么?

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

一周热门 更多>