初级会员
积分 89
金钱 89
注册时间 2016-11-11
在线时间 12 小时
10 金钱
本帖最后由 淡定 于 2017-12-21 13:48 编辑
现在大概知道了怎么做,不过一些细节搞不定,向各位请教一下。我需要从32的adc采集到数据发送到串口屏,我说一下我的思路,用sprintf对数据进行处理(存疑),把adc的数据类型转换成字符串,之后用串口发送函数发送出去。
int main(void)
{
u16 adcx=0;
int Tempdata;//ÖD¼ä±äá¿
char data[20];
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //éèÖÃNVICÖD¶Ï·Ö×é2:2λÇàÕ¼óÅÏè¼¶£¬2λÏìó|óÅÏè¼¶
uart_init(9600); //′®¿ú3õê¼»ˉÎa115200
LED_Init();
Adc_Init();
TIM3_Int_Init(1000,7199);//10KhzμļÆêyÆμÂ꣬¼Æêyμ½5000Îa500ms
while(1)
{
if(TempTIMflag==1)
{
TempTIMflag = 0;
//¼ó襶¶′|àí
adcx = Get_Adc_Average(ADC_Channel_10,10); //2é¼ˉadcêy¾Y
sprintf((char*)data,"%.8s",adcx);
Tempdata = key(adcx);
keyout(Tempdata);
HMISends("t0.txt = data");
HMISendb(0xff);
}
}
}
void HMISends(char *buf1) //×Ö·û′®·¢Ëíoˉêy
{
u8 i = 0;
while(1)
{
if(buf1[i]!=0)
{
USART_SendData(USART1, buf1[i]); //·¢Ëíò»¸ö×Ö½ú
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){};//μè′y·¢Ëí½áêø
i++;
}
else
return;
}
}
void HMISendb(u8 k) //×Ö½ú·¢Ëíoˉêy
{
u8 i;
for(i=0;i<3;i++)
{
if(k!=0)
{
USART_SendData(USART1, k); //·¢Ëíò»¸ö×Ö½ú
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET){};//μè′y·¢Ëí½áêø
}
else
return;
}
}
复制代码
我来回答