|
STM32三串口通信加網(wǎng)絡(luò)通信代碼
0.png (43.81 KB, 下載次數(shù): 58)
下載附件
2017-8-3 16:36 上傳
霍爾傳感器接下位機版縱撕代碼單片機源程序如下:
- #include <stm32f10x.h>
- #include <string.h>
- #include "includes.h"
- #include "timer.h"
- #include <stdio.h>
- u8 volatile rcv_usart1_str_flag = 0; //串口數(shù)據(jù)接收啟動標(biāo)記
- u8 volatile rcv_usart1_end_flag = 0; //串口數(shù)據(jù)接收結(jié)束標(biāo)記
- u8 volatile rcv_usart1_over_count = 0; //數(shù)據(jù)接收時間溢出標(biāo)記
- u8 inRx1Buf[50]; //接收緩存
- u16 inRx1Length = 0; //接收字節(jié)長度
- u16 PD_Length=0;
- extern u8 kt_flag;
- u8 SD_flag=0;
- u8 zero_data[4]={0x87,0xff,0xff,0x0a};
- unsigned char txt_buf[8]= {0xA5,0x5A,0x05,0x82,0x00,0x02,0x00,0x00};
- unsigned char on_off_data[3]={0x88,0x00,0x0a};
- unsigned char ceshi_data[3]={0x00,0x00,0x00};
- //========
- char test[UART1BUF_LEN];
- //-=======
- u8 uart1RxBuf[UART1BUF_LEN];
- u8 uart1RxStart = 0;
- u8 uart1RxEnd = 0;
- u8 uart2RxBuf[UART2BUF_LEN];
- u8 uart2RxStart = 0;
- u8 uart2RxEnd = 0;
- u8 uart3RxBuf[UART1BUF_LEN];
- u8 uart3RxStart = 0;
- u8 uart3RxEnd = 0;
- void LED_ON(void);
- void LED_OFF(void);
- void InitLedIO(void);
- void USART1_Init(void);
- int WriteString(u8 *text, FIL *file);
- extern u8 bootup_adjust;
- extern u8 bootup_font_update;
- #if ICO_TO_SD==0
- extern u8 bootup_ico_update;
- #endif
- u8 wlSendBuf[32];
- int res = -1;
- u8 rt_flag=0;
- UINT byte_read = 0;
- int volatile isFileOpen = -1;
- //unsigned char *txt_buf0;
- int readok=0;
- void NVIC_Configuration(void)
- {
- NVIC_InitTypeDef NVIC_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
- EXTI_InitTypeDef EXTI_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
- //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_ResetBits(GPIOB, GPIO_Pin_1);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_ResetBits(GPIOB, GPIO_Pin_6);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_ResetBits(GPIOB, GPIO_Pin_7);
-
-
- //GPIOA.0 中斷線以及中斷初始化配置 上升沿觸發(fā) PA0 WK_UP
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
- EXTI_InitStructure.EXTI_Line=EXTI_Line0;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure); //根據(jù)EXTI_InitStruct中指定的參數(shù)初始化外設(shè)EXTI寄存器
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
-
- NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; //使能按鍵WK_UP所在的外部中斷通道
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //搶占優(yōu)先級2,
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子優(yōu)先級3
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中斷通道
- NVIC_Init(&NVIC_InitStructure);
- NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-
- NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-
- NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-
- NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- //GPIO_SetBits(GPIOB, GPIO_Pin_5);
- GPIO_ResetBits(GPIOB, GPIO_Pin_5);
- }
- void App_Init(void)
- {
- delay_init(72);
- NVIC_Configuration();
- USART_Configuration();
- delay_ms(1500);
- Timer_Configuration();
- InitLedIO();
- }
- void reflus()
- {
- int i;
- for(i=0;i<60;i++)
- {
- test[i]=0;
- uart1RxEnd=0;
- }
- }
- int main(void)
- {
- int i;
- u8 s[20];
- SystemInit();
- App_Init();
- delay_ms(10);
- PD_Length=0;
- USART1_Put_Data(ceshi_data,3);
- USART3_Put_Data(ceshi_data,3);
- txt_buf[6]=PD_Length>>8;
- txt_buf[7]=PD_Length&0x00ff;
- //USART1_Put_Data(txt_buf,8);
- // GPIO_SetBits(GPIOB, GPIO_Pin_6);
- // GPIO_SetBits(GPIOB, GPIO_Pin_7);
- USART1_Put_Data(zero_data,4);
- USART3_Put_Data(zero_data,4);
- delay_ms(1000);
- if(kt_flag==1)
- {
- SD_flag=0;
- on_off_data[1]=0x06;
- GPIO_ResetBits(GPIOB, GPIO_Pin_1);
- USART1_Put_Data(on_off_data,3);
- USART3_Put_Data(on_off_data,3);
- }
- else
- {
- SD_flag=1;
- on_off_data[1]=0x05;
- GPIO_SetBits(GPIOB, GPIO_Pin_1);
- USART1_Put_Data(on_off_data,3);
- USART3_Put_Data(on_off_data,3);
- }
- while(1)
- {
- if(kt_flag==1&&SD_flag==1)
- {
- delay_ms(1500);
- if(kt_flag==1)
- {
- SD_flag=0;
- on_off_data[1]=0x06;
- GPIO_ResetBits(GPIOB, GPIO_Pin_1);
- USART1_Put_Data(on_off_data,3);
- USART3_Put_Data(on_off_data,3);
- }
- }
- uart1RxEnd=0;
- uart3RxEnd=0;
-
- }
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
霍爾傳感器接下位機版縱撕.7z
(841.73 KB, 下載次數(shù): 18)
2022-11-22 02:52 上傳
點擊文件名下載附件
STMF通信 下載積分: 黑幣 -5
|
|