[mw_shl_code=c,true]方法一
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "led.h"
int main(void)
{
Stm32_Clock_Init(9);
delay_init(72);
RCC->APB2ENR|=1<<2; //使能PORTA时钟
RCC->APB2ENR|=1<<5; //使能PORTD时钟
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;//PA8 推挽输出
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出
while(1)
{
GPIOD->ODR|=1<<2; //PD.2输出高
GPIOA->ODR|=1<<8; //PA8 输出高
GPIOD->ODR&=~(1<<2); //PD.2输出高
GPIOA->ODR&=~(1<<8); //PA8 输出高
}
}
方法二
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "led.h"
int main(void)
{
Stm32_Clock_Init(9);
delay_init(72);
LED_Init();
while(1)
{
GPIOD->ODR|=1<<2; //PD.2输出高
GPIOA->ODR|=1<<8; //PA8 输出高
GPIOD->ODR&=~(1<<2); //PD.2输出高
GPIOA->ODR&=~(1<<8); //PA8 输出高
}
}
其中
void LED_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
RCC->APB2ENR|=1<<5; //使能PORTD时钟
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;//PA8 推挽输出
// GPIOA->ODR|=1<<8; //PA8 输出高
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出
//GPIOD->ODR|=1<<2; //PD.2输出高
}
方法一用示波器测出来的IO端口频率约为770khz
方法二用示波器测出来的IO端口频率约为900khz
大神们这是为什么?? [/mw_shl_code]
|