8h3k6s4掉电重新上电串口失效,重新烧录恢复
本帖最后由 DebugLab 于 2024-9-12 12:08 编辑如图箭头所指处断电重新上电后串口无回复,接线未动,重新烧录一次程序后正常,单片机型号8h3k6s4
void main(void)
{
P_SW2 |= 0x80;//扩展寄存器(XFR)访问使能
P0M1 = 0x00; P0M0 = 0x08; //设置P0准双向口,P0.3推挽输出
P1M1 = 0x30; P1M0 = 0x30; //设置P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V)
P2M1 = 0x00; P2M0 = 0xff; //设置P2推挽输出
P3M1 = 0x00; P3M0 = 0x00; //设置P3准双向口
P4M1 = 0x3c; P4M0 = 0x3c; //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
P5M1 = 0x0c; P5M0 = 0x0c; //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
P6M1 = 0xff; P6M0 = 0xff; //设置为漏极开路(实验箱加了上拉电阻到3.3V)
P7M1 = 0x00; P7M0 = 0x00; //设置为准双向口
UART1_config(1); // 选择波特率, 2: 使用Timer2做波特率, 其它值: 使用Timer1做波特率.
UART2_config(2); // 选择波特率, 2: 使用Timer2做波特率, 其它值: 无效.
UART3_config(0); // 选择波特率, 2: 使用Timer2做波特率, 其它值: 使用Timer3做波特率.
EA = 1; //允许全局中断
PrintString3("STC8H8K64U UART1 Test Programme!\r\n");//UART3发送一个字符串
while (1)
{
if((RX3_Buffer ==0x21)&&(RX3_Buffer ==0x12)&&(RX3_Buffer ==0x01))
{
delay_ms(20);
databuf=RX3_Buffer;
databuf=0;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=RX3_Buffer;
databuf=0;
RX3_Buffer =0x00;
modbuscrc = MODBUS_CRC16(databuf, 20);
crcbuf=(u8)(modbuscrc>>8);
crcbuf=(u8)modbuscrc;
UART3_TxByte(0x21);
UART3_TxByte(0x12);
uart3_send_array(databuf, 20);
uart3_send_array(crcbuf, 2);
UART3_TxByte(0x40);
}
}
延时10MS,再打印看下
页:
[1]