打印
[应用相关]

[串口]:库2.0.3

[复制链接]
2073|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LPcfANS|  楼主 | 2009-1-15 13:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C:ManleyEKBoardFWLib_2.0.3examplesUSARTPrintf

库函数
void USART_SendData(USART_TypeDef* USARTx, u16 Data)
{
  /* Check the parameters */
  assert_param(IS_USART_ALL_PERIPH(USARTx));
  assert_param(IS_USART_DATA(Data)); 
    
  /* Transmit Data */
  USARTx->DR = (Data & (u16)0x01FF);
}
中应该加下面的,来判断吧?
 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
     {
     }
    
沙发
lut1lut| | 2009-1-15 14:46 | 只看该作者

现在的库只是寄存器层面的封装,没有整个通信过程的封装

所以while(TxE)的判断,是要用户自己加在USART_SendData()之前的。

就像I2C一样,库里只有
void I2C_SendData(I2C_TypeDef* I2Cx, u8 Data)
{
  /* Check the parameters */
  assert_param(IS_I2C_ALL_PERIPH(I2Cx));

  /* Write in the DR register the data to be sent */
  I2Cx->DR = Data;
}

u8 I2C_ReceiveData(I2C_TypeDef* I2Cx)
{
  /* Check the parameters */
  assert_param(IS_I2C_ALL_PERIPH(I2Cx));

  /* Return the data in the DR register */
  return (u8)I2Cx->DR;
}
但是需要自己加上发送start/addr/stop才能成其为一次通信过程。

使用特权

评论回复
板凳
LPcfANS|  楼主 | 2009-1-15 14:51 | 只看该作者

谢谢啊....

感觉还不能叫库,残缺的库啊...

使用特权

评论回复
地板
PowerGPS| | 2009-1-15 15:49 | 只看该作者

要使用DMA的库,那才好呀

使用特权

评论回复
5
LPcfANS|  楼主 | 2009-1-16 08:43 | 只看该作者

是的.不知道其他方面的库做的怎样?是否完整?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

1614

帖子

1

粉丝