打印

有关于C8051F340外部晶振问题

[复制链接]
2918|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
borrow1988|  楼主 | 2014-12-16 10:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用C8051F340外部晶振,配置之后,用EC6单步调试,程序直接卡住,KEIL退不出来,需要ALT+CTRL+'.'
请问是我板子的事么,程序如下:
#include<c8051f340.h>

// Peripheral specific initialization functions,
// Called from the Init_Device() function
void Port_IO_Init()
{

P0MDIN    = 0x3F; //6,7模拟输入
    P0SKIP    = 0xC0;
        P4MDOUT   = 0x20;
        XBR1      = 0x40;
}

void Oscillator_Init()
{
    int i = 0;
    OSCXCN    = 0x67;
    for (i = 0; i < 3000; i++);  // Wait 1ms for initialization
    while ((OSCXCN & 0x80) == 0);
    OSCICN    = 0x00;
    CLKSEL    = 0x01;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
    Port_IO_Init();
    Oscillator_Init();
}

void main()
{
        PCA0MD &= ~0x40;       
        Init_Device();
        while(1)
        {
                P4 &=~(1<<5);  // LED
        }
}

相关帖子

沙发
ningling_21| | 2014-12-16 11:14 | 只看该作者
用配置向导生成代码试试...

使用特权

评论回复
板凳
borrow1988|  楼主 | 2014-12-16 11:15 | 只看该作者
ningling_21 发表于 2014-12-16 11:14
用配置向导生成代码试试...

这个就是向导出来的代码

使用特权

评论回复
地板
ningling_21| | 2014-12-16 11:24 | 只看该作者
borrow1988 发表于 2014-12-16 11:15
这个就是向导出来的代码

问:切换外部晶振时应注意哪些问题?
答:首先要允许外部振荡器,但此时的系统时钟源仍应是内部时钟,直到外部振荡器稳定后,才可将系统时钟源切换到外部振荡器上,否则会出现切换不过去,系统死机的情况。

问:使用外部晶振应注意哪些问题?
答:1、所有的模拟和数字电源引脚都应接电源(2.7~3.6V);
2、C8051F3xx系列器件的晶振引脚间应跨接一个10M电阻(在新华龙网站的“主页”—“原理图/PCB库”中有C8051F系列单片机的典型接线图);

使用特权

评论回复
5
ayb_ice| | 2014-12-16 11:52 | 只看该作者
1: 建议整个初始化用配置向导代码
2: 可能是狗在影响,(有时需要在启动代码添加关狗代码,这是因为内存清零代码执行时间过长)

使用特权

评论回复
6
borrow1988|  楼主 | 2014-12-16 14:16 | 只看该作者
主函数第一句就关够了
PCA0MD &= ~0x40;      

使用特权

评论回复
7
ayb_ice| | 2014-12-16 16:12 | 只看该作者
borrow1988 发表于 2014-12-16 14:16
主函数第一句就关够了
PCA0MD &= ~0x40;

在main之前,MCU已经干了很多活了

使用特权

评论回复
8
ningling_21| | 2014-12-16 16:37 | 只看该作者
borrow1988 发表于 2014-12-16 14:16
主函数第一句就关够了
PCA0MD &= ~0x40;

试试,在初始化IO时,顺便把晶振2个脚设置成高电平再初始化晶振...

使用特权

评论回复
9
borrow1988|  楼主 | 2014-12-17 22:40 | 只看该作者
ayb_ice 发表于 2014-12-16 16:12
在main之前,MCU已经干了很多活了

我再启动代码关的
问题已经解决

使用特权

评论回复
10
borrow1988|  楼主 | 2014-12-17 22:41 | 只看该作者
ningling_21 发表于 2014-12-16 16:37
试试,在初始化IO时,顺便把晶振2个脚设置成高电平再初始化晶振...

问题解决了

使用特权

评论回复
11
ningling_21| | 2014-12-18 09:08 | 只看该作者
borrow1988 发表于 2014-12-17 22:41
问题解决了

什么原因?

使用特权

评论回复
12
borrow1988|  楼主 | 2014-12-18 09:11 | 只看该作者
ningling_21 发表于 2014-12-18 09:08
什么原因?

语句调换位置就行

您用过NRF24L01 做收发一体么

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

40

帖子

4

粉丝