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

[复制链接]
3014|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

粉丝
快速回复 在线客服 返回列表 返回顶部