#include "ai8051u.h"
#include "intrins.h"
#include "stc32_stc8_usb.h"
/*
任务1:按下P32按钮灯亮,松开P32按钮灯灭;
任务2:按下P32按钮灯灭,松开P32按钮灯亮;
任务3:按一下灯亮,按一下灯灭
*/
void main(void) {
WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
// 按照原理图,点亮8个LED灯需要按下P40总开关和给8个LED灯低电平
// 1、相应的GPIO口初始化
P0M1 = 0; P0M0 = 0;
P1M1 = 0; P1M0 = 0;
P2M1 = 0; P2M0 = 0;
P3M1 = 0; P3M0 = 0;
P4M1 = 0; P4M0 = 0;
P5M1 = 0; P5M0 = 0;
P6M1 = 0; P6M0 = 0;
P7M1 = 0; P7M0 = 0;
usb_init();
IE |= 0x80; // 允许USB中断
EA = 1; // 开启中断总开关
P40 = 0;
// 2、P40低电平
// 3、P00 P01 P02 P03 P04 P05 P06 P07低电平
while(1) {
if (bUsbOutReady)
{
// USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
// printf_usb("1. Read Num:%d\n", OutNumber);
// printf_usb("2. Read Num:%d\n", OutNumber);
// printf_usb("3. Read Num:%d\n", OutNumber);
// printf_usb("4. Read Num:%d\n", OutNumber);
usb_OUT_done();
}
// 任务1:按下P32按钮灯亮,松开P32按钮灯灭;
// 判断P32按键是否按下
if(P32 == 0) {
P00 = 0;
// printf("按钮按下\r\n");
}
else{
P00 = 1;
// printf("按钮松开\r\n");
}
}
}
注释这两句打印就能正常按键亮灭,取消注释,按键没反应
我的代码是上面,但是打开那两句printf烧录后按键没反应,需要注释掉才能按键有反应,请问是怎么回事?我看到老师的视频中第三个任务有printf是可以的
|