接下来就是发送端程序了,发送端是要在两个不同的mini板里烧写不同的程序,有一部分代码是需要修改的,大家看中文注释吧,乱码就不用看了。
[C] 纯文本查看 复制代码
#include "led.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "lcd.h"#include "key.h"#include "spi.h"#include "24l01.h" #include "adc.h"#include "stm32f10x_adc.h"//ALIENTEK Mini STM32??·?°?·????ú??24//?????¨?????é //?????§????www.openedv.com//?????????í??×????????????? int main(void) { u8 key,mode;//???????????????¨?? u8 i,*p; u16 adcx; float temp;u16 t=0; u8 tmp_buf[10]="A_";//????u8 tmp_buf2[10]="B_"; //???? char buffer[10];delay_init(); //???±??????????NVIC_Configuration(); uart_init(9600); //?®??????????9600LED_Init(); //????????LED??????????????LCD_Init(); //??????LCD KEY_Init();//°??ü??????Adc_Init(); NRF24L01_Init(); //??????NRF24L01 POINT_COLOR=RED;//?è??×??????ì?? LCD_ShowString(60,50,200,16,16,"Mini STM32");LCD_ShowString(60,70,200,16,16,"NRF24L01 TEST");LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");LCD_ShowString(60,110,200,16,16,"2014/3/12"); while(NRF24L01_Check())//?ì?éNRF24L01??·?????.{LCD_ShowString(60,130,200,16,16,"NRF24L01 Error");delay_ms(200);LCD_Fill(60,130,239,130+16,WHITE); delay_ms(200);} LCD_ShowString(60,130,200,16,16,"NRF24L01 OK");//·?????LCD_ShowString(60,150,200,16,16,"NRF24L01 TX_Mode");NRF24L01_TX_Mode(); while(1)//??????·??·?¨????????????!{adcx=Get_Adc_Average(ADC_Channel_10,10);temp=(float)adcx*(3.3/4096);sprintf(buffer,"%f",temp);p=buffer;//这个是第一个发射机的代码,把前面有屏蔽的部分去掉,同时要把后面第二个发射机的代码屏蔽掉,编译后就可以直接烧写进第一个mini板了// for(i=2;i<6;i++)//这么写是想只取3位数字,例如1.23或者12.3// {// tmp_buf=*p;// p++;// }// if(NRF24L01_TxPacket(tmp_buf)==TX_OK)// {// LCD_ShowString(60,170,239,32,16,"Sended DATA:");// LCD_ShowString(0,190,239,32,16,tmp_buf); // tmp_buf[9]=0; // }//以下是第二个发射机,使用的时候也是一样的,要把前面第一个发射机的几行代码屏蔽掉,再烧写进第二个发射机for(i=2;i<6;i++){tmp_buf2=*p;p++;}if(NRF24L01_TxPacket(tmp_buf2)==TX_OK){LCD_ShowString(60,170,239,32,16,"Sended DATA:");LCD_ShowString(0,190,239,32,16,tmp_buf2); tmp_buf2[9]=0;}else{ LCD_ShowString(60,170,239,32,16,"Send Failed "); LCD_Fill(0,188,240,218,WHITE);//?????????????? };LED0=!LED0;delay_ms(500);} }
接下来就是发送端程序了,发送端是要在两个不同的mini板里烧写不同的程序,有一部分代码是需要修改的,大家看中文注释吧,乱码就不用看了。
[C] 纯文本查看 复制代码
#include "led.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "lcd.h"#include "key.h"#include "spi.h"#include "24l01.h" #include "adc.h"#include "stm32f10x_adc.h"//ALIENTEK Mini STM32??·?°?·????ú??24//?????¨?????é //?????§????www.openedv.com//?????????í??×????????????? int main(void) { u8 key,mode;//???????????????¨?? u8 i,*p; u16 adcx; float temp;u16 t=0; u8 tmp_buf[10]="A_";//????u8 tmp_buf2[10]="B_"; //???? char buffer[10];delay_init(); //???±??????????NVIC_Configuration(); uart_init(9600); //?®??????????9600LED_Init(); //????????LED??????????????LCD_Init(); //??????LCD KEY_Init();//°??ü??????Adc_Init(); NRF24L01_Init(); //??????NRF24L01 POINT_COLOR=RED;//?è??×??????ì?? LCD_ShowString(60,50,200,16,16,"Mini STM32");LCD_ShowString(60,70,200,16,16,"NRF24L01 TEST");LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");LCD_ShowString(60,110,200,16,16,"2014/3/12"); while(NRF24L01_Check())//?ì?éNRF24L01??·?????.{LCD_ShowString(60,130,200,16,16,"NRF24L01 Error");delay_ms(200);LCD_Fill(60,130,239,130+16,WHITE); delay_ms(200);} LCD_ShowString(60,130,200,16,16,"NRF24L01 OK");//·?????LCD_ShowString(60,150,200,16,16,"NRF24L01 TX_Mode");NRF24L01_TX_Mode(); while(1)//??????·??·?¨????????????!{adcx=Get_Adc_Average(ADC_Channel_10,10);temp=(float)adcx*(3.3/4096);sprintf(buffer,"%f",temp);p=buffer;//这个是第一个发射机的代码,把前面有屏蔽的部分去掉,同时要把后面第二个发射机的代码屏蔽掉,编译后就可以直接烧写进第一个mini板了// for(i=2;i<6;i++)//这么写是想只取3位数字,例如1.23或者12.3// {// tmp_buf=*p;// p++;// }// if(NRF24L01_TxPacket(tmp_buf)==TX_OK)// {// LCD_ShowString(60,170,239,32,16,"Sended DATA:");// LCD_ShowString(0,190,239,32,16,tmp_buf); // tmp_buf[9]=0; // }//以下是第二个发射机,使用的时候也是一样的,要把前面第一个发射机的几行代码屏蔽掉,再烧写进第二个发射机for(i=2;i<6;i++){tmp_buf2=*p;p++;}if(NRF24L01_TxPacket(tmp_buf2)==TX_OK){LCD_ShowString(60,170,239,32,16,"Sended DATA:");LCD_ShowString(0,190,239,32,16,tmp_buf2); tmp_buf2[9]=0;}else{ LCD_ShowString(60,170,239,32,16,"Send Failed "); LCD_Fill(0,188,240,218,WHITE);//?????????????? };LED0=!LED0;delay_ms(500);} }
举报