STM32

※This article is based on STM32F1

HAL_UART_Init(UART_HandleTypeDef * husart) [edit]

初始化串口的的函数

UART_HandleTypeDef huart4;
  huart4.Instance = UART4;
  huart4.Init.BaudRate = 115200;
  huart4.Init.WordLength = UART_WORDLENGTH_8B;
  huart4.Init.StopBits = UART_STOPBITS_1;
  huart4.Init.Parity = UART_PARITY_NONE;
  huart4.Init.Mode = UART_MODE_TX_RX;
  huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart4.Init.OverSampling = UART_OVERSAMPLING_16;
  huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  huart4.Init.ClockPrescaler = UART_PRESCALER_DIV1;
  huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  if (HAL_UART_Init(&huart4) != HAL_OK)

HAL_StatusTypeDef HAL_UART_Receive_IT (UART_HandleTypeDef * huart, uint8_t * pData, uint16_t Size) [edit]

一种中断模式接收数据的函数。

注意如果设置接收数据不为1,而是某个固定的值,当串口接受的数据量不满足这个值的时候,串口中断不会被触发。一直等待接收数据满足设定值才会触发中断。如果出现接收出错可以使用HAL_USART_ErrorCallback函数来重置接收。

本函数必须在接受回调函数中再次调用才能经行下一次的接收。

#define num 1
uint16_t numd[num];
 
 
void UART_Init()
{
 
    .....
    HAL_UART_Receive_IT(&huart4,numd,num);
}
 
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);//接收完成回调函数
{
 
    HAL_UART_Receive_IT(&huart,numd,num);
}

HAL_StatusTypeDef HAL_UART_Transmit (UART_HandleTypeDef * husart, uint8_t * pTxData, uint16_t Size, uint32_t Timeout) [edit]

串口发送数据的函数,最重要的函数之一。单工以阻塞模式发送大量数据。

发送数据的大小要注意是u8类型的(0-255)

HAL_UART_Transmit(&huart4,"222",3,2);
//发送一个字符串 

u8 num = 10;
HAL_UART_Transmit(&huart4,&num,1,2);
//发送一个数字
 
u16 num = 0xffde;
u8 temp;
temp = num>>8;
HAL_UART_Transmit(&huart4,&temp,1,1);
temp = num;
HAL_UART_Transmit(&huart4,&temp,1,1);
//发送一个十六位的数据

&ref(): File not found: "ZigBee_体系结构.png" at page "+STM32+HAL库函数";


コメント:



(画像の文字列を入力して下さい)

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS