#include "stm32f10x.h"
#include "bsp_led.h"
#include "bsp_dma_mtp.h"
extern uint8_t SendBuff[SENDBUFF_SIZE];
void Delay( uint32_t count )
{
for (; count!=0;count--);
}
int main(void)
{
uint16_t i;
// 来到这里的时候,系统的时钟已经被配置成72M。
LED_GPIO_Config();
USART_Config();
for ( i=0; i'P';
}
USARTx_DMA_Config();
USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Tx, ENABLE);
while (1)
{
LED_B(ON);
}
}
本来我对这段代码不了解,后来搞懂了回车换行就清楚了,代码写得很好。
它要把数据放入输入数据缓冲区中,填入的是整数个TEXT_TO_SEND里面的内容。
u8 SendBuff[SEND_BUF_SIZE]; //发送数据缓冲区
开始写入第一句未写完执行外层if的else情况,直至写完执行内层if语句的else情况,写入0X0D(为回车符’\r’),同时mask加1,接着执行上一部分,写入0X0A(为换行符’\n’),同时将t清零,开始写第二句,如此重复,直至写满数据缓冲区。
j=sizeof(TEXT_TO_SEND);
for(i=0;i<SEND_BUF_SIZE;i++)//填充ASCII字符集数据
{
if(t>=j)//加入换行符
{
if(mask)
{
SendBuff[i]=0x0a;
t=0;
}else
{
SendBuff[i]=0x0d;
mask++;
}
}else//复制TEXT_TO_SEND语句
{
mask=0;
SendBuff[i]=TEXT_TO_SEND[t];
t++;
}
}