- 打卡等级:初来乍到
- 打卡总天数:2
- 最近打卡:2025-04-23 16:05:29
中级会员
- 积分
- 297
|
发表于 2023-3-21 15:33:17
|
显示全部楼层
本帖最后由 zcllom 于 2023-3-21 15:35 编辑
void UART1_DMA_Config(void)
{
DMA_UR1T_CFG = 0x80; //bit7 1:Enable Interrupt
DMA_UR1T_STA = 0x00;
}
void UART1_DMA_Transmit(u8 *pData, u16 Size)
{
if(Size == 0) return;
Size -= 1;
DMA_UR1T_AMT = (u8)Size; //设置传输总字节数:n+1
DMA_UR1T_TXA = (u8)pData;
DMA_UR1T_CR = 0xc0; //bit7 1:使能 UART4_DMA, bit6 1:开始 UART1_DMA 自动发送
}
void Uart1Init(void) //9600bps@22.1184MHz //调试接口
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器时钟1T模式
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设置定时器模式
TL1 = 0xC0; //设置定时初始值
TH1 = 0xFD; //设置定时初始值
ET1 = 0; //禁止定时器%d中断
TR1 = 1; //定时器1开始计时
P_SW1 &= 0x3f;
P_SW1 |= 0x40; //UART1 switch to, 0x00: P3.0 P3.1, 0x40: P3.6 P3.7, 0x80: P1.6 P1.7, 0xC0: P4.3 P4.4
//ES = 1; //允许中断
//REN = 1; //允许接收
B_TX1_Busy = 0;
}
void Timer0_init(void) //1500微秒@22.1184MHz
{
INTCLKO &= ~0x01; //不输出时钟
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x66; //设置定时初始值
TH0 = 0x7E; //设置定时初始值
ET0 = 1; //允许中断
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}
|
|