#include “STM8S207R8.h”
void Init_UART1(void)
{
UART1_CR1=0x00;
UART1_CR2=0x00;
UART1_CR3=0x00;
// 设置波特率,必须注意以下几点:
// (1) 必须先写BRR2
// (2) BRR1存放的是分频系数的第11位到第4位,
// (3) BRR2存放的是分频系数的第15位到第12位,和第3位
// 到第0位
// 例如对于波特率位9600时,分频系数=2000000/9600=208
// 对应的十六进制数为00D0,BBR1=0D,BBR2=00
UART1_BRR2=0x00;
UART1_BRR1=0x0d;
UART1_CR2=0x2c;//允许接收,发送,开接收中断
}
void UART1_sendchar(u8 data)
{
while((UART1_SR & 0x80)==0x00);
UART1_DR=data;
}
@far @interrupt void UART1_Recv_IRQHandler (void)
{
u8 data;
data=UART1_DR;
showLine(6,2,lcd_buffer,“0x%x2”,(u16)data);
return;
}
void Init_UART3(void)
{
UART3_CR1=0x00;
UART3_CR2=0x00;
UART3_CR3=0x00;
// 设置波特率,必须注意以下几点:
// (1) 必须先写BRR2
// (2) BRR1存放的是分频系数的第11位到第4位,
// (3) BRR2存放的是分频系数的第15位到第12位,和第3位
// 到第0位
// 例如对于波特率位9600时,分频系数=2000000/9600=208
// 对应的十六进制数为00D0,BBR1=0D,BBR2=00
UART3_BRR2=0x00;
UART3_BRR1=0x0d;
UART3_CR2=0x2c;//允许接收,发送,开接收中断
}
void UART3_sendchar(u8 data)
{
while((UART3_SR & 0x80)==0x00);
UART3_DR=data;
}
@far @interrupt void UART3_Recv_IRQHandler (void)
{
u8 data;
data=UART3_DR;
showLine(6,2,lcd_buffer,“0x%x2”,(u16)data);
return;
}
main()
{
u8 tmp=0;
Init_UART3();
Init_UART1();
_asm(“rim”);
while(1)
{
UART3_sendchar(tmp);
delay_ms(10);
tmp++;
delay_ms(1000);
}
}
#include “STM8S207R8.h”
void Init_UART1(void)
{
UART1_CR1=0x00;
UART1_CR2=0x00;
UART1_CR3=0x00;
// 设置波特率,必须注意以下几点:
// (1) 必须先写BRR2
// (2) BRR1存放的是分频系数的第11位到第4位,
// (3) BRR2存放的是分频系数的第15位到第12位,和第3位
// 到第0位
// 例如对于波特率位9600时,分频系数=2000000/9600=208
// 对应的十六进制数为00D0,BBR1=0D,BBR2=00
UART1_BRR2=0x00;
UART1_BRR1=0x0d;
UART1_CR2=0x2c;//允许接收,发送,开接收中断
}
void UART1_sendchar(u8 data)
{
while((UART1_SR & 0x80)==0x00);
UART1_DR=data;
}
@far @interrupt void UART1_Recv_IRQHandler (void)
{
u8 data;
data=UART1_DR;
showLine(6,2,lcd_buffer,“0x%x2”,(u16)data);
return;
}
void Init_UART3(void)
{
UART3_CR1=0x00;
UART3_CR2=0x00;
UART3_CR3=0x00;
// 设置波特率,必须注意以下几点:
// (1) 必须先写BRR2
// (2) BRR1存放的是分频系数的第11位到第4位,
// (3) BRR2存放的是分频系数的第15位到第12位,和第3位
// 到第0位
// 例如对于波特率位9600时,分频系数=2000000/9600=208
// 对应的十六进制数为00D0,BBR1=0D,BBR2=00
UART3_BRR2=0x00;
UART3_BRR1=0x0d;
UART3_CR2=0x2c;//允许接收,发送,开接收中断
}
void UART3_sendchar(u8 data)
{
while((UART3_SR & 0x80)==0x00);
UART3_DR=data;
}
@far @interrupt void UART3_Recv_IRQHandler (void)
{
u8 data;
data=UART3_DR;
showLine(6,2,lcd_buffer,“0x%x2”,(u16)data);
return;
}
main()
{
u8 tmp=0;
Init_UART3();
Init_UART1();
_asm(“rim”);
while(1)
{
UART3_sendchar(tmp);
delay_ms(10);
tmp++;
delay_ms(1000);
}
}
举报