国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

java網(wǎng)站開發(fā)技術(shù)百度seo優(yōu)化

java網(wǎng)站開發(fā)技術(shù),百度seo優(yōu)化,互聯(lián)網(wǎng)醫(yī)院網(wǎng)站建設(shè),做網(wǎng)站人家直接百度能搜到的因?yàn)槲沂亲约焊愕冒遄?amp;#xff0c;原本的下程序和串口1有問題,所以我用的是串口2,用的PA2和PA3 一,使用CubeMX配置串口 選擇A開頭的這個(gè)是異步通信。 配置串口參數(shù),往屆的題基本用的9600波特率,所以我這里設(shè)置為9600…

因?yàn)槲沂亲约焊愕冒遄?#xff0c;原本的下程序和串口1有問題,所以我用的是串口2,用的PA2和PA3

一,使用CubeMX配置串口

選擇A開頭的這個(gè)是異步通信。

配置串口參數(shù),往屆的題基本用的9600波特率,所以我這里設(shè)置為9600,其他參數(shù)照著設(shè)置即可。

接下來設(shè)置開啟串口中斷,把他勾選上。

下一步,配置基本GPIO,B站很多博主都更改過配置,我默認(rèn)的使用沒什么問題

接下來把程序?qū)С黾纯伞?/strong>

二,發(fā)送數(shù)據(jù)

我們?cè)谥鞒绦驅(qū)懸粋€(gè)發(fā)送程序,首先需要添加兩個(gè)頭文件

#include "stdio.h"
#include "string.h"

然后寫發(fā)送程序:

	char temp1[30];sprintf(temp1,"%d\r\n",123456);HAL_UART_Transmit(&huart2,(uint8_t *)temp1,strlen(temp1),50);

sprintf函數(shù):包含在stdio.h里面,他在作用是將sprintf函數(shù)打印到字符串中(要注意字符串的長(zhǎng)度要足夠容納打印的內(nèi)容,否則會(huì)出現(xiàn)內(nèi)存溢出),這里我們就是將123456放到temp1這個(gè)數(shù)組里面。

HAL_UART_Transmit是HAL庫(kù)提供的串口發(fā)送函數(shù)。四個(gè)參數(shù)分別是:

* @param huart UART句柄。
* @param pData指向數(shù)據(jù)緩沖區(qū)(u8或u16數(shù)據(jù)元素)。
* @param Size要發(fā)送的數(shù)據(jù)元素?cái)?shù)量(u8或u16)。
* @param Timeout超時(shí)時(shí)間。

串口接收:

三,接收數(shù)據(jù)

需要自己寫兩個(gè)函數(shù)

uint8_t rx_porint=0;
uint8_t rx_dat; 
char rx_data[64];
char car_1[10];
char car_2[10];
char car_3[20];
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) //Rx傳輸完成回調(diào),這個(gè)就是HAL庫(kù)中其中一個(gè)回調(diào)函數(shù),接受完成回調(diào)。
{rx_data[rx_porint++]=rx_dat;HAL_UART_Receive_IT(&huart2,&rx_dat,1);
}void Uart_Rx_Receiving_Processvoid(void) //接受數(shù)據(jù)處理函數(shù)
{if(rx_porint>0){sscanf(rx_data,"%4s:%4s:%14s",car_1,car_2,car_3);}	rx_porint = 0;memset(rx_data,0,30);
}

sscanf:通常被用來解析并轉(zhuǎn)換字符串,可以實(shí)現(xiàn)很強(qiáng)大的字符串解析功能。

memset:作用數(shù)組清零。

接下來是我的main.c和usart.c和usart.h程序全部。

//main.c
#include "main.h"
#include "gpio.h"
#include "lcd.h"
#include "usart.h"
#include "stdio.h"
#include "string.h"
void SystemClock_Config(void);
unsigned char key; 
char temp1[30];
int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();LCD_Init();LED_Init();Key_Init();MX_USART2_UART_Init();sprintf(temp1,"%d\r\n",123456);HAL_UART_Transmit(&huart2,(uint8_t *)temp1,strlen(temp1),50);while (1){if(rx_porint != 0){int temp=rx_porint;HAL_Delay(1);if(temp==rx_porint){Uart_Rx_Receiving_Processvoid();}}sprintf(temp1,"val=%s",car_1);LCD_SetBackColor(Yellow);LCD_DisplayStringLine(Line1,(unsigned char *)temp1);sprintf(temp1,"va2=%s",car_2);LCD_SetBackColor(Yellow);LCD_DisplayStringLine(Line3,(unsigned char *)temp1);sprintf(temp1,"va3=%s",car_3);LCD_SetBackColor(Yellow);LCD_DisplayStringLine(Line5,(unsigned char *)temp1);}}void SystemClock_Config(void)
{RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};/** Configure the main internal regulator output voltage*/HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);/** Initializes the RCC Oscillators according to the specified parameters* in the RCC_OscInitTypeDef structure.*/RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState = RCC_HSE_ON;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV3;RCC_OscInitStruct.PLL.PLLN = 20;RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();}/** Initializes the CPU, AHB and APB buses clocks*/RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK){Error_Handler();}
}/* USER CODE BEGIN 4 *//* USER CODE END 4 *//*** @brief  This function is executed in case of error occurrence.* @retval None*/
void Error_Handler(void)
{/* USER CODE BEGIN Error_Handler_Debug *//* User can add his own implementation to report the HAL error return state */__disable_irq();while (1){}/* USER CODE END Error_Handler_Debug */
}#ifdef  USE_FULL_ASSERT
/*** @brief  Reports the name of the source file and the source line number*         where the assert_param error has occurred.* @param  file: pointer to the source file name* @param  line: assert_param error line source number* @retval None*/
void assert_failed(uint8_t *file, uint32_t line)
{/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
//usart.c
#include "usart.h"
UART_HandleTypeDef huart2;
uint8_t rx_porint=0;
uint8_t rx_dat; 
char rx_data[64];
char car_1[10];
char car_2[10];
char car_3[20];void MX_USART2_UART_Init(void)
{huart2.Instance = USART2;huart2.Init.BaudRate = 9600;huart2.Init.WordLength = UART_WORDLENGTH_8B;huart2.Init.StopBits = UART_STOPBITS_1;huart2.Init.Parity = UART_PARITY_NONE;huart2.Init.Mode = UART_MODE_TX_RX;huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;huart2.Init.OverSampling = UART_OVERSAMPLING_16;huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;if (HAL_UART_Init(&huart2) != HAL_OK){Error_Handler();}if (HAL_UARTEx_SetTxFifoThreshold(&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK){Error_Handler();}if (HAL_UARTEx_SetRxFifoThreshold(&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK){Error_Handler();}if (HAL_UARTEx_DisableFifoMode(&huart2) != HAL_OK){Error_Handler();}HAL_UART_Receive_IT(&huart2,&rx_dat,1);
}void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{GPIO_InitTypeDef GPIO_InitStruct = {0};RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};if(uartHandle->Instance==USART2){/* USER CODE BEGIN USART2_MspInit 0 *//* USER CODE END USART2_MspInit 0 *//** Initializes the peripherals clocks*/PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK){Error_Handler();}/* USART2 clock enable */__HAL_RCC_USART2_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/**USART2 GPIO ConfigurationPA2     ------> USART2_TXPA3     ------> USART2_RX*/GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;GPIO_InitStruct.Alternate = GPIO_AF7_USART2;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);/* USART2 interrupt Init */HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);HAL_NVIC_EnableIRQ(USART2_IRQn);/* USER CODE BEGIN USART2_MspInit 1 *//* USER CODE END USART2_MspInit 1 */}
}void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 
{rx_data[rx_porint++]=rx_dat;HAL_UART_Receive_IT(&huart2,&rx_dat,1);
}void Uart_Rx_Receiving_Processvoid(void)
{if(rx_porint>0){sscanf(rx_data,"%4s:%4s:%14s",car_1,car_2,car_3);}	rx_porint = 0;memset(rx_data,0,30);
}

//usart.h
#ifndef __USART_H__
#define __USART_H__
#include "main.h"extern unsigned char rx_porint;
extern uint8_t rx_dat;
extern char rx_data[64];
extern char car_1[10];
extern char car_2[10];
extern char car_3[20];
extern UART_HandleTypeDef huart2;void MX_USART2_UART_Init(void);
void Uart_Rx_Receiving_Processvoid(void);#endif

http://aloenet.com.cn/news/39512.html

相關(guān)文章:

  • 北京海淀區(qū)信息科技有限公司seo關(guān)鍵詞優(yōu)化技術(shù)
  • 網(wǎng)站工作室設(shè)計(jì)廣州專做優(yōu)化的科技公司
  • 全網(wǎng)平臺(tái)整合營(yíng)銷推廣重慶百度快速優(yōu)化
  • 上海做網(wǎng)站開發(fā)的公司有哪些百度軟件商店下載安裝
  • 施工企業(yè)稅款繳納蘇州關(guān)鍵詞優(yōu)化seo
  • 用css做網(wǎng)站的好處百度指數(shù)的主要用戶是
  • 垂直 網(wǎng)站開發(fā)長(zhǎng)沙網(wǎng)站定制
  • 泉州市建設(shè)局網(wǎng)站廈門seo培訓(xùn)
  • wap手機(jī)建站平臺(tái)百度收錄需要多久
  • 網(wǎng)站即時(shí)到賬要怎么做建網(wǎng)站流程
  • 微博seo營(yíng)銷搜索引擎優(yōu)化的簡(jiǎn)稱
  • 什么網(wǎng)站做美式軟裝設(shè)計(jì)理念seo排名系統(tǒng)
  • 樂都區(qū)公司網(wǎng)站建設(shè)網(wǎng)站統(tǒng)計(jì)數(shù)據(jù)
  • 包頭教育平臺(tái)網(wǎng)站建設(shè)qq群推廣平臺(tái)
  • 三門峽建設(shè)銀行網(wǎng)站緬甸今日新聞
  • 微信微網(wǎng)站開發(fā)百度云競(jìng)價(jià)賬戶
  • 上海網(wǎng)站建設(shè)找緣魁北京網(wǎng)站提升排名
  • 個(gè)人怎么做網(wǎng)站推廣競(jìng)價(jià)推廣是什么意思
  • 織夢(mèng)系統(tǒng)網(wǎng)站騰訊競(jìng)價(jià)廣告
  • 人防工程做資料的網(wǎng)站sem托管公司
  • 怎么做跑腿網(wǎng)站如何建網(wǎng)站詳細(xì)步驟
  • 哪個(gè)網(wǎng)站可以做賣房百度詞條優(yōu)化
  • 福州建設(shè)網(wǎng)站效果seo關(guān)鍵詞優(yōu)化報(bào)價(jià)價(jià)格
  • 網(wǎng)站是怎么做的嗎谷歌網(wǎng)頁版登錄入口
  • 可信的大連網(wǎng)站建設(shè)成都百度推廣優(yōu)化創(chuàng)意
  • 浙江建設(shè)職業(yè)學(xué)校網(wǎng)站刷網(wǎng)站軟件
  • 公司網(wǎng)站建設(shè)方案百度推廣管理系統(tǒng)
  • 黃驊港十里金沙灘門票重慶網(wǎng)站seo技術(shù)
  • js網(wǎng)站評(píng)論框小紅書推廣價(jià)目表
  • 華強(qiáng)北 做網(wǎng)站海外推廣營(yíng)銷平臺(tái)