求大神看看,这个串口发送程序有问题吗??用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);//发送是否完成*/
}
}
看看硬件连接是否正确,波特率设置是否正确。接收到的是什么数据。感觉程序好像有问题,可以找个例程看看。
先确定串口波特率有没有出错,不然去看看类似的历程看是不是代码错误
麻烦帮忙看一下哪有问题??发送的数据是0x61但是收到的是0x4f,实在搞不懂是为什么,发送的数据和接收的完全对不上。我用的是USB转串口,直接把串口的2号脚连接到单片机的TX脚,这样可以吗??
2号脚是接什么的?
GD32单片机专业代理!
电话15016724544
QQ2011559106
串口的2号脚,是什么脚。有没有通过max232之类的,进行电平转换。还可以换个程序试试。
2号脚是串口线的RX脚,串口线需要接MAX232转??
USB转MAX232之后,还需要转TTL的。去淘宝上买板USB转TTL线吧