STC12C5A60AD单片机晶振及串口波特率问题我使用的是STC12C5A60AD的单片机.一开始使用的是24M晶振,瓷片电容是30P的.串口波特率发生器BRT=0xF9(误差是0.07%),具体这样设置void UART_Init (void){ SCON=0x50; /
STC12C5A60AD单片机晶振及串口波特率问题我使用的是STC12C5A60AD的单片机.一开始使用的是24M晶振,瓷片电容是30P的.串口波特率发生器BRT=0xF9(误差是0.07%),具体这样设置void UART_Init (void){ SCON=0x50; /
STC12C5A60AD单片机晶振及串口波特率问题
我使用的是STC12C5A60AD的单片机.一开始使用的是24M晶振,瓷片电容是30P的.串口波特率发生器BRT=0xF9(误差是0.07%),具体这样设置
void UART_Init (void)
{
SCON=0x50; //串行口设置,模式1,波特率57600
PCON=0X00;
BRT=0xF9;
AUXR=0x11;
ES=1;
IPH=0x10; //串口最高优先级
IP=0x10;
}
这样串行中断程序不能执行.
我把晶振换成22.1184M.BRT=0xFF(波特率为57600),串行中断能执行,但是有时PC发数据,单片机还是收不到.存在通信出错.
最后把晶振换成18.432M,BRT=0xFB(波特率是9600),串行中断能正常进行.通信线路不会存在问题.
我想晶振仍用24M的,瓷片电容该选多大?串口BRT设置为多少?是不是24M以上的晶振需要特殊处理?是不是波特率计算只要存在误差,就不能进行正常的串口通信吗?
24M时BRT=0xF9,波特率是9600,BRT是按9600计算的.误差是0.07%.
STC12C5A60AD单片机晶振及串口波特率问题我使用的是STC12C5A60AD的单片机.一开始使用的是24M晶振,瓷片电容是30P的.串口波特率发生器BRT=0xF9(误差是0.07%),具体这样设置void UART_Init (void){ SCON=0x50; /
伙计,你栽了.要用STC的单片机就不要追求性能,要追求性能就不要用STC的单片机!切记!切记!
我跟一位姓姚的STC的技术够通过,这人有点身在STC而言不由忠的姿态.我之所以跟他做关于芯片的技术上的沟通,是因为我的问题和你的问题差不多.
后来,我得出了个结论,赶快换芯片!高速串口STC做的很烂,我的串口最多做到19200bps,再往上,不管是用什么12T还是1T,不管是用波特率加倍还是不加倍,速率都上不去.我用的片子是STC12L5624AD-35I-LQPF32.
之后我发誓,以后只要STC不找我不逼我用它,这辈子我绝对不会去用STC,话说回来,深圳宏晶的几个小姑娘态度倒是很好的,有个姓张的,还有个姓王的.唯独技术支持的姓范的、和姓姚的态度那个恶啊,嘿嘿,算了吧,俺躲!
有问题可以和我沟通,我把这STC的片子资源都挖透了,虽然很厌倦再用这种片子,但是帮帮您走出STC的陷阱还是可以的.别太相信资料,资料有很大误导的嫌疑甚至水分.
祝您早日脱离STC单片机的苦海.
20100423