您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > stm32实验485实验
#includesys.h#includeusart.h#includedelay.h#includeled.h#includebeep.h#includekey.h#includeexti.h#includewdg.h#includetimer.h#includetpad.h#includeoled.h#includelcd.h#includeusmart.h#includertc.h#includewkup.h#includeadc.h#includedac.h#includedma.h#include24cxx.h#includeflash.h#includers485.hintmain(void){u8key;u8i=0,t=0;u8cnt=0;u8rs485buf[5];Stm32_Clock_Init(9);//系统时钟设置uart_init(72,9600);//串口初始化为9600delay_init(72);//延时初始化LED_Init();//初始化与LED连接的硬件接口LCD_Init();//初始化LCDusmart_dev.init(72);//初始化USMARTKEY_Init();//按键初始化RS485_Init(36,9600);//初始化RS485POINT_COLOR=RED;//设置字体为红色LCD_ShowString(60,50,200,16,16,WarShipSTM32);LCD_ShowString(60,70,200,16,16,RS485TEST);LCD_ShowString(60,90,200,16,16,ATOM@ALIENTEK);LCD_ShowString(60,110,200,16,16,2012/9/9);LCD_ShowString(60,130,200,16,16,KEY0:Send);//显示提示信息POINT_COLOR=BLUE;//设置字体为蓝色LCD_ShowString(60,150,200,16,16,Count:);//显示当前计数值LCD_ShowString(60,170,200,16,16,SendData:);//提示发送的数据LCD_ShowString(60,210,200,16,16,ReceiveData:);//提示接收到的数据while(1){key=KEY_Scan(0);if(key==KEY_RIGHT)//KEY0按下,发送一次数据{for(i=0;i5;i++){rs485buf[i]=cnt+i;//填充发送缓冲区LCD_ShowxNum(60+i*32,190,rs485buf[i],3,16,0X80);//显示数据}RS485_Send_Data(rs485buf,5);//发送5个字节}RS485_Receive_Data(rs485buf,&key);if(key)//接收到有数据{if(key5)key=5;//最大是5个数据.for(i=0;ikey;i++)LCD_ShowxNum(60+i*32,230,rs485buf[i],3,16,0X80);//显示数据}t++;delay_ms(10);if(t==20){LED0=!LED0;//提示系统正在运行t=0;cnt++;LCD_ShowxNum(60+48,150,cnt,3,16,0X80);//显示数据}}}
本文标题:stm32实验485实验
链接地址:https://www.777doc.com/doc-6052820 .html