资源简介

实现两个超声波模块的数字通信,可接收多位字符和数字,发送端通过串口1连接电脑接收数据,接收端采用液晶显示,接收和发送模块通过串口通信,超声波模块的作用是代替杜邦线的连接,采用队列的形式接收和发送数据

资源截图

代码片段和文件信息

//接收程序
#include “led.h“
#include “delay.h“
#include “sys.h“
#include “key.h“
#include “usart.h“
#include “Manchester.h“
#include “usart2-5.h“
#include “Commun.h“
#include “lcd.h“

extern u8 crc_check_flag;
extern u8 Secode_Data;
extern Secode_Queue Manchester_buff;
u8 Rec_Buff[100];
void GPIO_Init_c(void);

int main(void)
{
u8 i cnt old_cnt;
int x = 0 y = 75;
delay_init();       //延时函数初始化   
LED_Init();    //初始化与LED连接的硬件接口
KEY_Init();
uart_init(115200);
USARTx_Configuration(115200);
LCD_Init();
LCD_Clear(BLUE);
POINT_COLOR = RED;
BACK_COLOR  = WHITE;
// GPIO_Init_c();
Receive_Init(); //接收队列初始化
printf(“接收端\n“);
while(1)
{
LCD_ShowString(20 30 200 16 16 “data communication“);
LCD_ShowString(20 50 200 16 16 “Receive_data: “);
if (crc_check_flag)
{
cnt = Queue_Length(Manchester_buff);
for (i=0; i {
Rec_Buff[i] = Queue_Out(&Manchester_buff);
printf(“%d “ Rec_Buff[i]);
LCD_ShowString(x + 8 * i y 200 16 16 &Rec_Buff[i]);
}
printf(“接收**************************成功\n“);
if (cnt < old_cnt)
{
for(i=cnt; i {
LCD_ShowString(x + 8 * i y 200 16 16 “ “);
}
}
crc_check_flag = 0;
old_cnt = cnt;
}
// GPIO_SetBits(GPIOBGPIO_Pin_11);
// delay_ms(20);
// GPIO_ResetBits(GPIOBGPIO_Pin_11);
// delay_ms(20);
}
}

void GPIO_Init_c(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;  //LED0-->PB.5 端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
 GPIO_Init(GPIOB &GPIO_InitStructure);  //根据设定参数初始化GPIOB.5
 GPIO_SetBits(GPIOBGPIO_Pin_11);


}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7448  2015-07-15 14:53  HARDWARE.zip
     文件        1905  2015-07-14 17:22  mainRX.c
     文件        1107  2015-07-14 17:21  mainTx.c

评论

共有 条评论