新手刚上路,这么写不知道为什么上位机接收不到。
#include "sys.h"
#include "delay.h"
#include "rs485.h"
#include "led.h"
u8 send_data[] = {"hello !"};
int main(void)
{
int len;
len = sizeof(send_data);
delay_init(168);
led_init();
RS485_Init(9600);
while(1)
{
RS485_Send_Data(send_data,len);
led0 = !led0;
delay_ms(1000);
}
}
除此之外还有一个疑问,就是当我把教学例程里面的lcd_init或者usart_init全注释掉之后,也是不能发送,上位机接收不到。
int main(void)
{
u8 key;
u8 i=0,t=0;
u8 cnt=0;
u8 rs485buf[5];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init(168);
uart_init(115200);
LED_Init();
// LCD_Init(); //LCD3õê¼»ˉ
KEY_Init();
RS485_Init(9600);
// POINT_COLOR=RED;//éèÖÃ×ÖìåÎaoìé«
// LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");
// LCD_ShowString(30,70,200,16,16,"RS485 TEST");
// LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
// LCD_ShowString(30,110,200,16,16,"2014/5/7");
// LCD_ShowString(30,130,200,16,16,"KEY0:Send"); //ÏÔê¾ìáê¾DÅÏ¢
//
// POINT_COLOR=BLUE;//éèÖÃ×ÖìåÎaà¶é«
// LCD_ShowString(30,150,200,16,16,"Count:"); //ÏÔê¾μ±Ç°¼ÆêyÖμ
// LCD_ShowString(30,170,200,16,16,"Send Data:"); //ìáê¾·¢ËíμÄêy¾Y
// LCD_ShowString(30,210,200,16,16,"Receive Data:"); //ìáê¾½óêÕμ½μÄêy¾Y
//
while(1)
{
key=KEY_Scan(0);
if(key==KEY0_PRES)
{
for(i=0;i<5;i++)
{
rs485buf[i]=cnt+i;
// LCD_ShowxNum(30+i*32,190,rs485buf[i],3,16,0X80);
}
RS485_Send_Data(rs485buf,5);
}
RS485_Receive_Data(rs485buf,&key);
if(key)
{
if(key>5)key=5;
for(i=0;i<key;i++)LCD_ShowxNum(30+i*32,230,rs485buf[i],3,16,0X80);
}
t++;
delay_ms(10);
if(t==20)
{
LED0=!LED0;
t=0;
cnt++;
// LCD_ShowxNum(30+48,150,cnt,3,16,0X80);
}
}
}
一周热门 更多>