|
32單片機(jī)RS485 通訊
51hei.png (107.02 KB, 下載次數(shù): 20)
下載附件
2023-9-19 19:39 上傳
51hei.png (51.6 KB, 下載次數(shù): 20)
下載附件
2023-9-19 19:39 上傳
51hei.png (24.97 KB, 下載次數(shù): 21)
下載附件
2023-9-19 19:40 上傳
- #include "./SYSTEM/sys/sys.h"
- #include "./SYSTEM/usart/usart.h"
- #include "./SYSTEM/delay/delay.h"
- #include "./USMART/usmart.h"
- #include "./BSP/LED/led.h"
- #include "./BSP/LCD/lcd.h"
- #include "./BSP/KEY/key.h"
- #include "./BSP/RS485/rs485.h"
- int main(void)
- {
- uint8_t key;
- uint8_t i = 0, t = 0;
- uint8_t cnt = 0;
- uint8_t rs485buf[5];
- HAL_Init(); /* 初始化HAL庫(kù) */
- sys_stm32_clock_init(RCC_PLL_MUL9); /* 設(shè)置時(shí)鐘, 72Mhz */
- delay_init(72); /* 延時(shí)初始化 */
- usart_init(115200); /* 串口初始化為115200 */
- usmart_dev.init(72); /* 初始化USMART */
- led_init(); /* 初始化LED */
- lcd_init(); /* 初始化LCD */
- key_init(); /* 初始化按鍵 */
- rs485_init(9600); /* 初始化RS485 */
- lcd_show_string(30, 50, 200, 16, 16, "STM32", RED);
- lcd_show_string(30, 70, 200, 16, 16, "RS485 TEST", RED);
- lcd_show_string(30, 90, 200, 16, 16, "ATOM@ALIENTEK", RED);
- lcd_show_string(30, 110, 200, 16, 16, "KEY0:Send", RED); /* 顯示提示信息 */
- lcd_show_string(30, 130, 200, 16, 16, "Count:", RED); /* 顯示當(dāng)前計(jì)數(shù)值 */
- lcd_show_string(30, 150, 200, 16, 16, "Send Data:", RED); /* 提示發(fā)送的數(shù)據(jù) */
- lcd_show_string(30, 190, 200, 16, 16, "Receive Data:", RED);/* 提示接收到的數(shù)據(jù) */
- while (1)
- {
- key = key_scan(0);
- if (key == KEY0_PRES) /* KEY0按下,發(fā)送一次數(shù)據(jù) */
- {
- for (i = 0; i < 5; i++)
- {
- rs485buf[i] = cnt + i; /* 填充發(fā)送緩沖區(qū) */
- lcd_show_xnum(30 + i * 32, 170, rs485buf[i], 3, 16, 0X80, BLUE); /* 顯示數(shù)據(jù) */
- }
- rs485_send_data(rs485buf, 5); /* 發(fā)送5個(gè)字節(jié) */
- }
- rs485_receive_data(rs485buf, &key);
- if (key) /* 接收到有數(shù)據(jù) */
- {
- if (key > 5) key = 5; /* 最大是5個(gè)數(shù)據(jù). */
- for (i = 0; i < key; i++)
- {
- lcd_show_xnum(30 + i * 32, 210, rs485buf[i], 3, 16, 0X80, BLUE); /* 顯示數(shù)據(jù) */
- }
- }
- t++;
- delay_ms(10);
- if (t == 20)
- {
- LED0_TOGGLE(); /* LED0閃爍, 提示系統(tǒng)正在運(yùn)行 */
- t = 0;
- cnt++;
- lcd_show_xnum(30 + 48, 130, cnt, 3, 16, 0X80, BLUE); /* 顯示數(shù)據(jù) */
- }
- }
- }
復(fù)制代碼
|
-
-
課件.7z
2023-9-19 19:41 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
10.7 MB, 下載次數(shù): 10, 下載積分: 黑幣 -5
|