最近在做DMA实验,主函数中加入了指示灯闪烁的问题,主函数如下:#include "stm32f10x.h"
#include "./led/bsp_led_dma.h"
#include "./usart/bsp_usart.h"
//#include "stm32f10x_it.h"
extern uint8_t SendBuff[SENDBUFF_SIZE];
void delay(uint32_t count)
{
for(;count!=0;count--);
}
int main(void)
{
uint32_t i;
LED_GPIO_Config();
USART_CONFIG();
USARTx_DMA_Config();
for(i=0;i<SENDBUFF_SIZE;i++)
{
SendBuff='P';
}
USART_DMACmd(USARTX,USART_DMAReq_Tx,ENABLE);
// USART_SendByte (USARTX,'a');
// Usart_SendString(USARTX,&quot;好好学习天天向上&quot;);
//printf(&quot;好好学习天天向上\r\n&quot;);
while(1)
{
LED2_TOGGLE
delay(0xfffff);
}
}
在实验中发现,delay延时函数参数为0xfffff,实验可以成功,但是delay延时函数参数为0xffff,指示灯就不会闪烁。大家知道这是什么原因吗? 并且将教程中老师给的代码写进去,指示灯也不会闪烁 |