STC12C5A60AD单片机晶振及串口波特率问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/25 13:28:37
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的单片机.一开始使用的是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%.
伙计,你栽了.要用STC的单片机就不要追求性能,要追求性能就不要用STC的单片机!切记!切记!
我跟一位姓姚的STC的技术够通过,这人有点身在STC而言不由忠的姿态.我之所以跟他做关于芯片的技术上的沟通,是因为我的问题和你的问题差不多.
后来,我得出了个结论,赶快换芯片!高速串口STC做的很烂,我的串口最多做到19200bps,再往上,不管是用什么12T还是1T,不管是用波特率加倍还是不加倍,速率都上不去.我用的片子是STC12L5624AD-35I-LQPF32.
之后我发誓,以后只要STC不找我不逼我用它,这辈子我绝对不会去用STC,话说回来,深圳宏晶的几个小姑娘态度倒是很好的,有个姓张的,还有个姓王的.唯独技术支持的姓范的、和姓姚的态度那个恶啊,嘿嘿,算了吧,俺躲!
有问题可以和我沟通,我把这STC的片子资源都挖透了,虽然很厌倦再用这种片子,但是帮帮您走出STC的陷阱还是可以的.别太相信资料,资料有很大误导的嫌疑甚至水分.
祝您早日脱离STC单片机的苦海.
20100423
我跟一位姓姚的STC的技术够通过,这人有点身在STC而言不由忠的姿态.我之所以跟他做关于芯片的技术上的沟通,是因为我的问题和你的问题差不多.
后来,我得出了个结论,赶快换芯片!高速串口STC做的很烂,我的串口最多做到19200bps,再往上,不管是用什么12T还是1T,不管是用波特率加倍还是不加倍,速率都上不去.我用的片子是STC12L5624AD-35I-LQPF32.
之后我发誓,以后只要STC不找我不逼我用它,这辈子我绝对不会去用STC,话说回来,深圳宏晶的几个小姑娘态度倒是很好的,有个姓张的,还有个姓王的.唯独技术支持的姓范的、和姓姚的态度那个恶啊,嘿嘿,算了吧,俺躲!
有问题可以和我沟通,我把这STC的片子资源都挖透了,虽然很厌倦再用这种片子,但是帮帮您走出STC的陷阱还是可以的.别太相信资料,资料有很大误导的嫌疑甚至水分.
祝您早日脱离STC单片机的苦海.
20100423
已知单片机晶振频率6MHZ,串口工作于方式1,波特率1200,允许中断方式接收,编程对串口进行初始化.
51单片机串口工作在方式2,时钟频率为12MHZ时波特率为多少?
51单片机串口中断的问题
谁知道用Verilog写串口通信时,数据传输时波特率是怎么计算出来的或者说根据已知的波特率我怎样计算计数值
51单片机在什么情况下会产生串口中断
单片机中计算串行口的波特率时,根据波特率是公式计算,我总是算不出正确值,波特率的单位是什么
波特率和晶振的关系怎么来计算波特率于晶振间的误差比例,例如根据9600的波特率来算出11.0592的晶振误差是百分之零.
关于单片机TMOD问题
51单片机中片内RAM中,特殊功能寄存器128B中P0口,可以位寻址,第八位是87h,而波特率选择寄
晶振在单片机中的作用是什么?
英语翻译本文研究了基于VC++6.0的串口通信编程技术,设计并实现了一个基于微机和单片机串口通讯的数据采集显示系统.论文
单片机89c51程序问题