你的代码用示波器测量P4.7口已经可以测到输出频率信号了,不过有些失真。
需要将P4.7设置推挽输出,并且设置P4.7快速翻转速度,此外示波器探头使用"x10"档位测量。
- void PORT4_Init(void)
- {
- SetP4nQuasiMode(0x7e); //设置P4.6,P4.5,P4.4,P4.3,P4.2,P4.1为准双向口模式
- SetP4nPushPullMode(0x81); //设置P4.7,P4.0为推挽输出模式
-
- EnableP4nPullUp(0x01); //使能P4.0内部上拉电阻
- DisableP4nPullUp(0xfe); //关闭P4.7,P4.6,P4.5,P4.4,P4.3,P4.2,P4.1内部上拉电阻
- DisableP4nPullDown(BIT_ALL); //关闭P4内部下拉电阻
- DisableP4nSchmitt(BIT_ALL); //使能P4施密特触发
- SetP4nSlewRateNormal(0x7f); //设置P4.6,P4.5,P4.4,P4.3,P4.2,P4.1,P4.0一般翻转速度
- SetP4nSlewRateFast(0x80); //设置P4.7快速翻转速度
- SetP4nDrivingNormal(BIT_ALL); //设置P4一般驱动能力
- SetP4nDigitalInput(BIT_ALL); //使能P4数字信号输入功能
-
- //<<AICUBE_USER_PORT4_INITIAL_BEGIN>>
- // 在此添加用户初始化代码
- //<<AICUBE_USER_PORT4_INITIAL_END>>
- }
复制代码
PLL时钟32M,2分频输出信号:
|