打印
[STM8]

新手请教,stm8s105k4 485通讯代码是否有问题

[复制链接]
2676|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tmac3903|  楼主 | 2013-5-29 22:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<STM8S105K4.h>


void UART1_Init(void)
{   
                       
  UART2_CR2 = 0;           // 禁止UART发送和接收
  UART2_CR1 = 0;           // b5 = 0,允许UART,禁止奇偶校验
                                 //一个起始位,8个数据位
        UART2_CR3 = 0;           // 1个停止位
                           

  UART2_BRR2 = 0;
  UART2_BRR1 = 0x0d;              // 实际的波特率分频系数为00D0(208)
                                                                  // 对应的波特率为2000000/208=9600
                                    
  UART2_CR2 = 0x0C;               // b3 = 1,允许发送
                                    // b2 = 1,允许接收
                                 
}


void UART1_SendChar(unsigned char ch)
{
  while((UART2_SR & 0x80) == 0x00);  // 若发送寄存器不空,则等待
  UART2_DR = ch;                     // 将要发送的字符送到数据寄存器  
}

main()
{
  // 首先初始化UART3
  UART1_Init();
        //初始化IO口,即485的片选 信号PD3
         PD_DDR = 0x08;
   PD_CR1 = 0x08;              // 将PD3设置成推挽输出
   PD_CR2 = 0x00;

  while(1)                    // 进入无限循环
  {
                 PD_ODR=0x08;    //PD3口输出1
                 UART1_SendChar(0x12);
  }                              
}

通过485-232电平转换接口后,串口调试助手没有反应。。。。
沙发
figo20042005| | 2013-5-30 16:20 | 只看该作者
  UART2_DeInit();
  UART2_Init((u32)9600, UART2_WORDLENGTH_8D, UART2_STOPBITS_1, UART2_PARITY_NO, UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_RX_ENABLE);
  UART2_ITConfig(UART2_IT_TXE, ENABLE);
  UART2_ITConfig(UART2_IT_RXNE,ENABLE);
试试这样初始化看看

使用特权

评论回复
板凳
hkcj| | 2013-5-30 19:23 | 只看该作者
帮楼主  顶一个  看看有没有高手能够帮你解决这个问题  顶一个

使用特权

评论回复
地板
ninuniu123| | 2013-7-28 16:51 | 只看该作者
UART1_Init();
应该是UART2_Init();
UART1_SendChar(0x12);
应该是UART2_SendChar(0x12);
再试试

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝