打印

老大们求救 stm32 usart

[复制链接]
2492|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jackspearsking|  楼主 | 2010-11-17 13:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jackspearsking 于 2010-11-17 13:55 编辑

我想在stm32mini板上实现 上位机发字符串 通过usart1接收 并将接受数据 再发给上位机

以下为我的终端代码
u8 TxBuffer[20];  //发射缓冲
u8 RxBuffer[RxBufferSize];    //接收缓冲大小
u8 NbrOfDataToTransfer = TxBufferSize;     //接收缓冲的数目
u8 NbrOfDataToRead = RxBufferSize;   //发射缓冲的数目
u8 TxCounter = 0;  
u16 RxCounter = 0;  //接收和发送索引初始化
u8 i=0;
void USART1_IRQHandler(void)
{

while(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收部分
{
    // 接收一个字节从接收数据寄存器
    RxBuffer[RxCounter++] = (USART_ReceiveData(USART1) & 0x7F);
for(i=0;i<=RxCounter;i++)
{
   TxBuffer = RxBuffer;
}        
                if(RxCounter == NbrOfDataToRead)
                   {
                          // USART1接收中断
                          USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
                   }   
  while(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)  //发送部分
{  
    // 发送一个字节到发送数据寄存器
  
      USART_SendData(USART1, TxBuffer[TxCounter++]);
    if(TxCounter == NbrOfDataToTransfer)
    {
      // 关闭USART1的发送中断
      USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
    }   
}   
}     

}
沙发
gaobq| | 2010-11-17 17:08 | 只看该作者
你先用一个简单程序,调试能收能发,再加入复杂点的算法,一般情况下应该是语法等低级错误所致,前提是硬件完好,上位机串口要注意,我的USB to 232线就害过我一次

使用特权

评论回复
板凳
IJK| | 2010-11-17 17:59 | 只看该作者
你先用一个简单程序,调试能收能发,再加入复杂点的算法,一般情况下应该是语法等低级错误所致,前提是硬件完好,上位机串口要注意,我的USB to 232线就害过我一次 ...
gaobq 发表于 2010-11-17 17:08


有道理。
另外,用示波器看看波形也是个简单、快速的办法

使用特权

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

本版积分规则

1

主题

1

帖子

1

粉丝