hujj 发表于 2019-7-8 10:27
字库问题用code已经解决了,不过1K的data确实太紧凑了,仅128个字节,我将触摸按键这块删 ...
549的RAM是 2K+128字节,不只1K。
串口0用定时器2,如下:
void mInitSTDIO( )
{
UINT32 x;
UINT8 x2;
//定时器1做波特率发生器
SM0 = 0;
SM1 = 1;
SM2 = 0; //串口0使用模式1
//使用Timer1作为波特率发生器
RCLK = 0; //UART0接收时钟
TCLK = 0; //UART0发送时钟
PCON |= SMOD;
x = 10 * FREQ_SYS / UART0BUAD / 16; //如果更改主频,注意x的值不要溢出
x2 = x % 10;
x /= 10;
if ( x2 >= 5 ) x ++; //四舍五入
TMOD = TMOD & ~ bT1_GATE & ~ bT1_CT & ~ MASK_T1_MOD | bT1_M1; //0X20,Timer1作为8位自动重载定时器
T2MOD = T2MOD | bTMR_CLK | bT1_CLK; //Timer1时钟选择
TH1 = 0-x; //12MHz晶振,buad/12为实际需设置波特率
TR1 = 1; //启动定时器1
TI = 1;
REN = 1; //串口0接收使能
//定时器2做波特率发生器
// SM0 = 0;
// SM1 = 1;
// SM2 = 0; //串口0使用模式1
// //使用Timer1作为波特率发生器
// RCLK = 1; //UART0接收时钟
// TCLK = 1; //UART0发送时钟
// PCON |= SMOD;
// x = 10 * FREQ_SYS / UART0BUAD / 16; //如果更改主频,注意x的值不要溢出
// x2 = x % 10;
// x /= 10;
// if ( x2 >= 5 ) x ++; //四舍五入
//
//// TMOD = TMOD & ~ bT1_GATE & ~ bT1_CT & ~ MASK_T1_MOD | bT1_M1; //0X20,Timer1作为8位自动重载定时器
// C_T2=0;
// CP_RL2=0;
// T2MOD = T2MOD | bTMR_CLK | bT2_CLK; //Timer2时钟选择
// RCAP2 = 65536 - x;
// TR2 = 1; //启动定时器1
// TI = 1;
// REN = 1; //串口0接收使能
}