这个问题用库函数,不如使用寄存器直接操作翻转快
主频多高并不是口输出就那个快,口的输出时通过指令控制的 ,指令运行要耗费始终周期的所有输出速度没有那么快
楼主问题是否解决?
楼主对输出速率和翻转速率搞混淆了,输出速率还包含语句运行时间,不肯能和晶振一样。
兄弟啊,在仿真界面看下你的主要时钟有没有切换过去吧,看你的这段时钟初始化,主时钟不像能切换到了外部时钟。在时钟没有切换到外部时钟的情况下,你也没对内部时钟时行分频,系统时钟只有2MHz。速度当然达不到10M了。你用下面这段时钟初始化代码,试试看吧。
static void MCU_Clock_Init(void)
{
CLK_DeInit(); //时钟寄存器初始化
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //内部时钟1分频
CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1); //主要时钟分频
CLK_HSECmd(ENABLE); //使能外部时钟
while(CLK_GetFlagStatus(CLK_FLAG_HSERDY) == RESET);//等待外部时钟稳定
(void)CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE); //自动切换到 外部主时钟
}
我做项目时,用的STM8S207RB,GPIO口的速度挺快的,没具体没时,在是在24M的外部时钟下,与内核时钟已相差不多了。
学习一下。
应该是CPU跑不过来。
把CPU的时钟调快点。
10M速度这么快???
把系统时钟源调高点的。15楼的就是啦