本帖最后由 笨笨兔 于 2018-9-27 15:11 编辑
本来想先调通串口再来测试ADC性能,结果第一步就卡在串口上了。
刚看到 https://bbs.21ic.com/icview-2559372-1-1.html 这个帖子也是相似问题。
(因为 P20/P11 是被仿真口占用的,所以我就想到用P15/P16来当串口(P15=Tx=推挽输出,P16=Rx=上拉输入))
遇到的问题:
1。按如下代码设置后,在P15/P16接上通电中的 USB转TTL 模块(已经设置成5V电平)时,不能下载,必须把P15/P16断开才能下载。
2。下载成功后,MCU串口无输出。
请原厂给一个可以看到串口输出的例子。
void Uart0_Init(void)
{
//OTCON |= 0x10; //0b(1101,xxxx) ==> P20 = Pin8=Tx、P11 = Pin18=Rx 做串口
OTCON &= 0xC0; //++ 0b(1100,xxxx) ==> P15 = Pin2=Tx、P16 = Pin3=Rx 做串口
P1CON |= 0x20; //++ P1.5 as Output
P1PH |= 0x40; //++ P1.6 as Input with Pullup
SCON = 0X50; //设置通信方式为模式一,允许接收
T2CON &= 0XCf; //选择T1做波特率发生器
TR1 = 0; //用定时器1作为波特率发生器,定时器1必须停止计数
TH1 = 0x06; //在16M时,波特率为9600;定时器初值[TH1,TL1] = Fsys/波特率
TL1 = 0x82; //在16M时,波特率为9600
EUART = 1; //开启Uart0中断
EA = 1; //开启总中断
}
//主程序
void main(void)
{
Init_Port(); //初始化端口
Uart0_Init();
TI = 1;
SBUF = 'H';
...
}
|