hal库中的UART使用

1.初始化串口

UART_initStruct.Instance		=USART1;
UART_initStruct.Init.BaudRate   = 9600;
UART_initStruct.Init.WordLength = UART_WORDLENGTH_8B;
UART_initStruct.Init.StopBits   = UART_STOPBITS_1;
UART_initStruct.Init.Parity     = UART_PARITY_NONE;
UART_initStruct.Init.HwFlowCtl  = UART_HWCONTROL_NONE;
UART_initStruct.Init.Mode       = UART_MODE_TX_RX;
if(HAL_UART_Init(&UART_initStruct) != 0)
{
   
	return;
}

2.重写HAL_UART_MspInit()函数

注意:在HAL_UART_MspInit()函数中不能使用HAL_UART_Receive_IT()或HAL_UART_Transmit_IT()函数,否则不会进入中断处理函数中,也就是说设置中断无效;

void HAL_UART_MspInit(UART_HandleTypeDef *huart)
{
     
  GPIO_InitTypeDef  GPIO_InitStruct;
  
	/* gpio clock enable */
  USARTx_TX_GPIO_CLK_ENABLE();
  USARTx_RX_GPIO_CLK_ENABLE();

	/* uart clock enable */
  USARTx_CLK_ENABLE(); 
  
	/*set gpio*/
  GPIO_InitStruct.Pin       = USARTx_TX_PIN;
  GPIO_InitStruct.Mode      = GPIO_MODE_AF_PP;
  GPIO_InitStruct.Pull      = GPIO_PULLUP;
  GPIO_InitStruct.Speed     = GPIO_SPEED_FREQ_HIGH;

  HAL_GPIO_Init(USARTx_TX_GPIO_PORT, &GPIO_InitStruct);


  GPIO_InitStruct.Pin = USARTx_RX_PIN;
  GPIO_InitStruct.Mode      = GPIO_MODE_INPUT;

  HAL_GPIO_Init(USARTx_RX_GPIO_P
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值