STM32
直播中

胡秋阳

13年用户 1532经验值
私信 关注
[问答]

关于HAL库串口通信的知识点你想知道都在这

关于HAL库串口通信的知识点你想知道都在这

回帖(1)

陈静

2021-12-8 13:48:15
1. cubeMX配置

CubeMX配置生成代码参考 :https://blog.csdn.net/as480133937/article/details/99073783
cubeMX配置过程的注意事项请参考:https://liu-endong.blog.csdn.net/article/details/113585500
2. 中断

HAL的串口中断不像库函数配置需要自己引用中断向量,他是直接使用启动文件的向量表里面的中断表。











然后在中断文件里面实现中断函数,cubeMX生成的非系统中断函数一般都在最后面添加



找到接收、发送中断,接收中断在中断函数最后几行






3. 重定义fputc

在hal.c中定义



#include extern UART_HandleTypeDef huart1;   //声明串口 重定义pfutc



int fputc(int ch, FILE *f){  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);  return ch;} int fgetc(FILE *f){  uint8_t ch = 0;  HAL_UART_Receive(&huart1, &ch, 1, 0xffff);  return ch;} 4. main.c中调用

添加数据缓冲



#define RXBUFFERSIZE 256char RxBuffer[RXBUFFERSIZE];  调用fputc



                printf("666led666n");                HAL_Delay(1000);
5. 总结

以上代码是连续发送,不能一次发送一行,而是1s发送一次,
举报

更多回帖

发帖
×
20
完善资料,
赚取积分