stm8S串口通信向电脑发送

2019-07-19 20:59发布

本帖最后由 chenjiabao 于 2016-12-4 20:16 编辑

#include "stm8s.h"
#include "led.h"
#include "delay.h"

void UART1_Init(void)
{
    UART2->BRR2=0x01;//00-0d:9600(fcpu=fmaster=2MHz)
    UART2->BRR1=0x34;//00-1a:4800; 01-34:2400

    UART2->CR2=0x2c;
}
main()
{
        uint8_t i = 0;
          CLK->CKDIVR = 0x18;//2MHz

   UART2_Init();
   LED_Init();
   LED_ON();
   while (1)
  {

         if (i >= 16)
        {
                i = 0;
        }
      while(!(UART2->SR & 0x80));//发送寄存器数据是否转移完

     UART2->CR2 |= 0x00;
     UART2->DR=i; //要发送的数据
     UART2->CR2 |= 0x08; //

     while((UART2->SR & 0x40) == 0);//发送是否完成
          LED_REVERSAL();
         delay_ms(200);
  }
}


电脑上收到的就是0xFF。不变

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
chenjiabao
1楼-- · 2019-07-20 02:42
解决了,需要配置发送引脚为推挽输出,接收引脚悬浮输入。
正点原子
2楼-- · 2019-07-20 07:22
 精彩回答 2  元偷偷看……
螃蟹爱虫
3楼-- · 2019-07-20 09:35
顶。
yuyouliang
4楼-- · 2019-07-20 09:54
chenjiabao 发表于 2016-12-4 20:07
解决了,需要配置发送引脚为推挽输出,接收引脚悬浮输入。

如果采用固件库的话,固件库里的初始化则没看到对发送和接收的管脚进行初始化,这?

一周热门 更多>