#author("2024-12-23T15:01:05+08:00","default:Admin","Admin")
[[STM32]]
#author("2024-12-23T15:54:54+08:00","default:Admin","Admin")

&color(red){※This article is based on STM32F1};
#contents

* HAL_UART_Init(UART_HandleTypeDef * husart) [#c246453d]

初始化串口的的函数

#codeprettify{{
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) [#eb3cbab4]

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

- huart :接收数据串口指针。
- pdata 接收区的指针  
- size 接受数据量字节长度,一般设置接收长度为1,每次接受一个字节的数据就进入中断处理。

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

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

#codeprettify{{
 
#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) [#k62bdfef]

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

- huart :要发送数据的串口指针
- ptxData:要发送的数据,注意此处的指针形式
- Size:发送数据的长度(字节数)
- Timeout:发送数据超时时间

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

#codeprettify{{
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(ZigBee_体系结构.png);

#hr();
コメント:
#comment_kcaptcha


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS