huiguang_1 发表于 2013-6-3 15:10
AD_TDR这个寄存器是设置禁止施密特触发的,STM8的串口和采样口是复用的,采样口配置为禁止施密特触发了,可 ...
没用到采样数据,我把程序改为、
unsigned char i;
u8 TxBuffer1[] = "STM8 Hello!";
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8);
UART2->BRR2 = 0x00; //9600bps @2M
UART2->BRR1 = 0x0D; //9600bps @2M
UART2->CR3 = 0x00; //1位停止位,不开启同步模式
UART2->CR2 = 0x2C; // 使能发送和接收功能,并开启接收中断
UART2->CR1 = 0x00; //8位数据,不使用奇偶效验,并且使能UART1
enableInterrupts(); //使能全局中断
while (1)
{
for(i=0;i<sizeof(TxBuffer1);i++)
{
UART2->DR = TxBuffer1;//发送TxBuffer1数组的字符
while((UART2->SR & 0x80) == 0x00);//查询发送缓冲区的字节是否已经发送出去
}
}
只让他发送数据,也是不行的,难道是我的配置出问题了。硬件应该不会有问题,做PWM,定时器都是可以实现。就是串口数据发送接收有问题,用IAR查看寄存器值,但是DR一直都没有变化,大神帮我看看是不是寄存器的配置出问题了,这是看别人的例程改的。刚刚接触,ST的设备 |