最近在弄学校的一个项目,找了好多无线温度的程序,发现多是51的,只好自己改成stm32了。程序在原子例程的基础上修改的。
本例使用DS18B20获取温度,24L01进行无线传送,均在串口调试助手上显示发送的温度值与接收值。
线路连接:
DS18B20接PA1
24L01_CE接PG8
24L01_CS接PG7
24L01_IRQ接PG6
24L01_MISO接PB14
24L01_MOSI接PB15
24L01_SCK接PB13
单片机源程序如下:
- #include "stm32f10x.h"
- #include "delay.h"
- #include "usart.h"
- #include "ds18b20.h"
- #include "24l01.h"
- int i;
- u16 t=0;
- short temperature;
- extern u8 th,tl;
- u8 tmp_buf[33];
- int main (void)
- {
-
- uart_init(115200);
- delay_init();
- NRF24L01_Init();
- NRF24L01_TX_Mode();
- DS18B20_Init();
-
-
- while(1)
- {
-
-
-
-
-
- if(NRF24L01_TxPacket(tmp_buf)==TX_OK)
- {
- temperature=DS18B20_Get_Temp();
- tmp_buf [0]=th; //发送温度值高位
- tmp_buf[1]=tl; //发送温度值低位
- printf("\n\r %3f \r\n",temperature/100.0);//串口显示发送的温度
- delay_ms(1000);
- }
- }
-
-
- }
-
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
无线温度.rar
(10.31 MB, 下载次数: 93)
|