[讨论] 关于stm8s103k单片机串口通信

李亮123   2015-8-22 16:52 楼主
求大神看看,这个串口发送程序有问题吗??用USB转串口线接到单片机的TX和RX引脚,在串口调试助手上接收的数据不是发送的数据,怎么回事?求解答
#include
#include "gpio.h"
//#define LED1_FLASH PB_ODR_ODR3=!PB_ODR_ODR3
int i=0;
/***********延时**************/
void delay(void)
{
        unsigned int i;
        for(i=0;i<50000;i++)
        {
        }
}
/*********串口初始化*********/
void UART1_Init(void)
{
    UART1_CR2=0x00;//使发送禁用TEN=0;
    UART1_CR1=0x00;//设置M字长,8位数据位
    UART1_CR3=0x00;//1位停止位

    UART1_BRR2=0x00;//00-0d:9600(fcpu=fmaster=2MHz)
    UART1_BRR1=0x0d;//00-1a:4800; 01-34:2400

    UART1_CR2=0x08;
}
/*******内部时钟初始化************/
void CLK_Init(void)
{
                CLK_ECKR=0x00;//禁止外部时钟
                CLK_ICKR=0x01;//使能高速内部时钟,从停机或者活跃停机模式快速唤醒使能
                CLK_CMSR=0xe1;//内部HSI震荡选择
         
                //CLK_PCKENR1=0xff;
                CLK_SWR=0xe1;//16MHZ内部振荡器(HSI)为主时钟源
                CLK_CKDIVR=0x18;//分频,位4:3,00 不分频、01 2分频、10 4分频、11 8分频
}


void main()
{
        //EXTI_init();
      //CLK_Init();
        //UART1_Init();
        //TIM2_Init();
        while (1)
        {
               
                while(!(UART1_SR & 0x80));//发送寄存器数据是否转移完
                UART1_CR2=0x00;//a处
                UART1_DR=0x61;//要发送的数据
                UART1_CR2=0x08;//b处
                while((UART1_SR & 0x40) ==0);//发送是否完成*/
        }
}

回复评论 (8)

看看硬件连接是否正确,波特率设置是否正确。接收到的是什么数据。感觉程序好像有问题,可以找个例程看看。
点赞  2015-8-22 22:40
先确定串口波特率有没有出错,不然去看看类似的历程看是不是代码错误
点赞  2015-8-23 10:45
引用: ienglgge 发表于 2015-8-22 22:40
看看硬件连接是否正确,波特率设置是否正确。接收到的是什么数据。感觉程序好像有问题,可以找个例程看看。

麻烦帮忙看一下哪有问题??发送的数据是0x61但是收到的是0x4f,实在搞不懂是为什么,发送的数据和接收的完全对不上。我用的是USB转串口,直接把串口的2号脚连接到单片机的TX脚,这样可以吗??
点赞  2015-8-27 09:54
2号脚是接什么的?
GD32单片机专业代理! 电话15016724544 QQ2011559106
点赞  2015-8-27 17:03
串口的2号脚,是什么脚。有没有通过max232之类的,进行电平转换。还可以换个程序试试。
点赞  2015-8-27 20:51
引用: ienglgge 发表于 2015-8-27 20:51
串口的2号脚,是什么脚。有没有通过max232之类的,进行电平转换。还可以换个程序试试。

2号脚是串口线的RX脚,串口线需要接MAX232转??
  • IMAG2415.jpg
点赞  2015-8-28 10:33
USB转MAX232之后,还需要转TTL的。去淘宝上买板USB转TTL线吧
点赞  2015-8-29 00:54
引用: swisor 发表于 2015-8-29 00:54
USB转MAX232之后,还需要转TTL的。去淘宝上买板USB转TTL线吧

非常感谢,已经知道了
点赞  2015-8-29 09:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复