无线LED亮度灯柱控制系统设计(二)

也是终于把板子搞好了

1、发送程序

 #include "main.h"               
 #include "bsp_adc.h"
 #include "stdio.h"
 #include "Serial.h"
 #include "AD.h"
 ​
 ​
 char g_Ashining[5] = "00000";
 uint8_t g_TxMode = 0, g_UartRxFlag = 0;
 uint8_t g_UartRxBuffer[ 100 ] = { 0 };
 uint8_t g_RF24L01RxBuffer[ 32 ] = { 0 };
 ​
 uint8_t ceshi[ 32 ] = { 1 };
 ​
 uint16_t ADValue;
 uint8_t AD0, AD1, AD2, AD3;
 ​
 float Voltage;
 ​
 extern __IO uint16_t ADC_ConvertedValue;
 ​
 // 局部变量,用于保存转换计算后的电压值
 ​
 ​
 // 软件延时
 void Delay(__IO uint32_t nCount)
 {
   for(; nCount != 0; nCount--);
 }
 ​
 ​
 /**
   * @brief :主函数
   * @param :无
   * @note :无
   * @retval:无
   */
 int main( void )
 {
  uint8_t i = 0;
 ​
  //ADC初始化
  //ADCx_Init();
  //串口初始化
  drv_uart_init( 9600 );
 
  //延时初始化
  drv_delay_init( );
 
  //LED初始化
  drv_led_init( );
 
  //SPI初始化
  drv_spi_init( );
 
  //CC1101初始化
  CC1101_Init( );
 
  //ADC初始化
  AD_Init();
 
 ​
 
  for( i = 0; i < 6; i++ )
  {
  led_red_flashing( );
  led_green_flashing( );
  drv_delay_500Ms( 1 );
  }
 
  i = 0;
 ​
 ​
 
  while( 1 )
  {
  ADValue = AD_GetValue(ADC_Channel_0);
 
   AD0 = ADValue/1000;
  AD1 = (ADValue%1000) / 100;
  AD2 = (ADValue%100) / 10;
  AD3 = ADValue%10;
 
  g_Ashining[0] = AD0 + '0';
  g_Ashining[1] = AD1 + '0';
  g_Ashining[2] = AD2 + '0';
  g_Ashining[3] = AD3 + '0';
 
  //g_Ashining = "11022";
  //snprintf(g_Ashining, sizeof(g_Ashining), "%d", AD0);
  // CC1101_Tx_Packet( (uint8_t *)g_Ashining, 8 , ADDRESS_CHECK ); //模式1发送固定字符,1S一包
  CC1101_Tx_Packet( (uint8_t *)g_Ashining, 8 , ADDRESS_CHECK ); //模式1发送固定字符,1S一包
 ​
  //drv_delay_ms(100);
  //drv_delay_ms(100);
  CC1101_Clear_TxBuffer();
 ​
  i++;
  if(i == 5)
  {
  //CC1101_Reset();
  i = 0;
  }
 
  }
 
 ​
 
 }
 ​
 ​

2、接收程序

 #include "Serial.h"
 #include "stdio.h"
 #include <string.h>
 #include "main.h"
 #include "LED.h"
 ​
 const char *g_Ashining = "ashining";
 uint8_t g_TxMode = 0, g_UartRxFlag = 0;
 uint8_t g_UartRxBuffer[ 100 ] = { 0 };
 uint8_t g_RF24L01RxBuffer[ 32 ] = { 0 };
 uint8_t Display[ 32 ] = { 0 };
 ​
 uint16_t AD0 = 0;
 ​
 /**
   * @brief :主函数
   * @param :无
   * @note :无
   * @retval:无
   */
 int main( void )
 {
  uint8_t i = 0;
 ​
 ​
 
  //串口初始化
  drv_uart_init( 9600 );
 
  //延时初始化
  drv_delay_init( );
 
  //LED初始化
  drv_led_init( );
 
  //SPI初始化
  drv_spi_init( );
 
  //CC1101初始化
  CC1101_Init( );
 
  //LED初始化
  LED_Init();
 
  for( i = 0; i < 6; i++ )
  {
  led_red_flashing( );
  led_green_flashing( );
  drv_delay_500Ms( 1 );
  }
 
 ​
  while( 1 )
  {
  CC1101_Clear_RxBuffer( );
  CC1101_Set_Mode( RX_MODE );
  Serial_SendString("RSSI: ");
  Serial_SendNumber(CC1101_Read_Reg(0xF4), 2);
  Serial_SendString(" LQI: ");
  Serial_SendNumber(CC1101_Read_Reg(0x33), 2);
  Serial_SendString("\n");
  i = CC1101_Rx_Packet( g_RF24L01RxBuffer ); //接收字节
 
 
  if( 0 != i )
  {
  //AD0 = g_RF24L01RxBuffer[0]*1000 - '0';
  //Serial_SendNumber(AD0, 1);
  //Serial_SendArray(g_RF24L01RxBuffer, 4);
  Display[0] = g_RF24L01RxBuffer[0];
  Display[1] = g_RF24L01RxBuffer[1];
  Display[2] = g_RF24L01RxBuffer[2];
  Display[3] = g_RF24L01RxBuffer[3];
 
  AD0 = (Display[0] - 0x30)*1000 + (Display[1] - 0x30)*100 + (Display[2] - 0x30)*10 + (Display[3] - 0x30)*1;
  //Serial_SendNumber(AD0, 4);
 
  //Serial_SendByte(CC1101_Read_Reg(0x34)); //读取RSSI值
 
 
  if(AD0 >= 4080)
  {
  LED0_ON();
  LED1_ON();
  LED2_ON();
  LED3_ON();
  LED4_ON();
  LED5_ON();
  LED6_ON();
  LED7_ON();
  }
 
  else if(AD0 >= 3583)
  {
  LED0_ON();
  LED1_ON();
  LED2_ON();
  LED3_ON();
  LED4_ON();
  LED5_ON();
  LED6_ON();
 
  LED7_OFF();
 
  }
 
  else if(AD0 >= 3510)
  {
  LED0_ON();
  LED1_ON();
  LED2_ON();
  LED3_ON();
  LED4_ON();
  LED5_ON();
 
  LED6_OFF();
  LED7_OFF();
 ​
 
  }
 
  else if(AD0 >= 2925)
  {
  LED0_ON();
  LED1_ON();
  LED2_ON();
  LED3_ON();
  LED4_ON();
 
  LED5_OFF();
  LED6_OFF();
  LED7_OFF();
 ​
  }
 
  else if(AD0 >= 2340)
  {
  LED0_ON();
  LED1_ON();
  LED2_ON();
  LED3_ON();
 
  LED4_OFF();
  LED5_OFF();
  LED6_OFF();
  LED7_OFF();
 ​
  }
 
  else if(AD0 >= 1755)
  {
  LED0_ON();
  LED1_ON();
  LED2_ON();
 
  LED3_OFF();
  LED4_OFF();
  LED5_OFF();
  LED6_OFF();
  LED7_OFF();
 ​
  }
 
  else if(AD0 >= 1170)
  {
  LED0_ON();
  LED1_ON();
 
  LED2_OFF();
  LED3_OFF();
  LED4_OFF();
  LED5_OFF();
  LED6_OFF();
  LED7_OFF();
  }
 
  else if(AD0 >= 585)
  {
  LED0_ON();
 
  LED1_OFF();
  LED2_OFF();
  LED3_OFF();
  LED4_OFF();
  LED5_OFF();
  LED6_OFF();
  LED7_OFF();
  }
 ​
  else if(AD0 <= 585)
  {
  LED0_OFF();
  LED1_OFF();
  LED2_OFF();
  LED3_OFF();
  LED4_OFF();
  LED5_OFF();
  LED6_OFF();
  LED7_OFF();
 ​
  }
 
 ​
  }
 
 
 ​
 ​
  }
 
 ​
 
 }
 ​

编译、下载

成功通过发送端的电位器控制接收端的LED灯

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇