|
本帖最后由 wzr1999 于 2022-11-23 21:44 编辑
天问51开发板作为增强型51单片机,它比传统的51单片机性能提升很多,天问BLOCK编程也十分方便。51单片机价格便宜,适用于一些低端低成本的场合。随着物联网的普及,WIFI模块的应用也十分广泛,基于51单片机的WIFI模块通信可以应用于许多场景。
本次项目基于天问STC16开发板为主,结合ESP8266模块和板载NTC热敏电阻进行测试。
其中利用了NetAssist工具进行测试,功能还略有不足,后续还会完善(服务器下发命令)。
主要代码如下:
/*描述该功能:主循环
@param:NULL
@retval: void
*/
void loop()
{
nix_display_clear();//数码管清屏
temp = ntc_read_temp();
nix_display_float(temp,1);//数码管显示浮点数
P4_1 = !P4_1;//LED闪烁
delay(1000);
sprintf(wendu,"temp:%f\n",temp);
uart_putstr(UART_4,wendu);
uart_putstr(UART_4,"TEST\n");
}
//
/*描述该功能:串口发送AT命令给WIFI模块
@param:cmd:发送的命令 ack1:返回的数据
@retval:如果为1发送成功,0为发送失败
*/
bit ESP8266_Send_AT_Cmd(char *cmd, char *ack1){
bit ack = 0;
uint8 config_Delay = 5;
uart_putstr(UART_4,cmd);
printf("Line:41\n");
do
{
printf("Line:44\n");
if(rxd4_flag){
rxd4_flag = 0;
printf("Line:46\n");
if(strpos((const char*)rxd4_buf,ack1)){
ack = 1;
printf("find ack ok\r\n");
rxd4_buf[rxd4_index] = '\0';
printf("%s\r\n",rxd4_buf);
memset(rxd4_buf,0,rxd4_index);
rxd4_index = 0;
break;
}
}
delay(1000);
}while(config_Delay--);
return ack;
}
/*描述该功能:定时器0超时接收中断
@param:void
@retval: void
*/
void T_IRQ0(void) interrupt 1 using 2{
//TR0 = 0;
nix_scan_callback();//数码管扫描回调函数
if(start_timer2){
rxd4_time_cnt++;
if(rxd4_time_cnt > MAX_REV_TIME){
rxd4_time_cnt = 0;
rxd4_flag = 1;
memset(wendu,0,sizeof(wendu));//定时2s清除wendu数组
start_timer2 = 0;
}
}
}
因为平台限制,以上是代码的一部分,如果大家想要整个代码的话,可以私信我。如果有任何问题都可以告诉我。
|
|