中级会员
 
- 积分
- 396
- 金钱
- 396
- 注册时间
- 2017-6-21
- 在线时间
- 77 小时
|

楼主 |
发表于 2020-1-14 14:32:47
|
显示全部楼层
在阿波罗上使用HAL库测试了一下,状态正常。HAL库的数据接收函数没有 标准库简洁呀
void uart6_init(u32 bound)
{
//UART 初始化设置
hirda6.Instance = USART6; //USART1
hirda6.Init.BaudRate=bound; //波特率
hirda6.Init.WordLength=UART_WORDLENGTH_8B; //字长为8位数据格式
hirda6.Init.Parity=IRDA_PARITY_NONE; //无奇偶校验位
hirda6.Init.Mode=IRDA_MODE_TX_RX; //收发模式
hirda6.Init.Prescaler = 1;
hirda6.Init.IrDAMode = IRDA_POWERMODE_NORMAL;
if (HAL_IRDA_Init(&hirda6) != HAL_OK)
{
Error_Handler();
}
}
//UART底层初始化,时钟使能,引脚配置,中断配置
//此函数会被HAL_UART_Init()调用
//huart:串口句柄
void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda)
{
//GPIO端口设置
GPIO_InitTypeDef GPIO_Initure = {0};
if(hirda->Instance == USART6)//如果是串口6,进行串口6 MSP初始化
{
__HAL_RCC_GPIOC_CLK_ENABLE(); //使能GPIOC时钟
__HAL_RCC_USART6_CLK_ENABLE(); //使能USART6时钟
GPIO_Initure.Pin = GPIO_PIN_6; //PC6
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_FAST; //高速
GPIO_Initure.Alternate=GPIO_AF8_USART6; //复用为USART6
HAL_GPIO_Init(GPIOC,&GPIO_Initure); //初始化PC6
GPIO_Initure.Pin=GPIO_PIN_7; //PC7
HAL_GPIO_Init(GPIOC,&GPIO_Initure); //初始化PC7
#if EN_UART6_RX
HAL_NVIC_EnableIRQ(USART6_IRQn); //使能USART6中断通道
HAL_NVIC_SetPriority(USART6_IRQn,3,4); //抢占优先级3,子优先级3
#endif
}
}
|
|