HC32F4A0串口使用

news/2025/1/14 10:27:01/文章来源:https://www.cnblogs.com/T3rra/p/18670214

说明:
轮询 polling方法
更改自HC32官方库2.2.0版本


相关宏定义

/* 串口 */
#define USART_RX_PORT                   (GPIO_PORT_B)   /* PH13: USART1_RX */
#define USART_RX_PIN                    (GPIO_PIN_15)
#define USART_RX_GPIO_FUNC              (GPIO_FUNC_33)#define USART_TX_PORT                   (GPIO_PORT_B)   /* PH15: USART1_TX */
#define USART_TX_PIN                    (GPIO_PIN_14)
#define USART_TX_GPIO_FUNC              (GPIO_FUNC_32)/* USART unit definition */
#define USART_UNIT                      (CM_USART1)

引脚可以参照HC32F4A0数据手册里的引脚功能表自由定义
image

初始化

void USART_Init()
{stc_usart_uart_init_t stcUartInit;/* Set TX port function */GPIO_SetFunc(USART_TX_PORT, USART_TX_PIN, USART_TX_GPIO_FUNC);GPIO_SetFunc(USART_RX_PORT, USART_RX_PIN, USART_RX_GPIO_FUNC);/* Enable clock  */FCG_Fcg3PeriphClockCmd(FCG3_PERIPH_USART1, ENABLE);USART_UART_StructInit(&stcUartInit);stcUartInit.u32ClockDiv = USART_CLK_DIV64;stcUartInit.u32OverSampleBit = USART_OVER_SAMPLE_8BIT;stcUartInit.u32Baudrate = 115200ul;(void)USART_UART_Init(USART_UNIT, &stcUartInit, NULL);USART_FuncCmd(USART_UNIT, USART_RX | USART_TX, ENABLE);//	uint8_t buf[] = "hello world!\n"; 
//	USART_UART_Trans(USART_UNIT, buf, sizeof(buf), 1000);
}

串口printf使用 重定向fputc函数

修改hc32_ll_utility.c文件中的fputc函数,把默认的注释掉就行
参考博客:HC32F4A0串口重定义printf

/*** @brief  Re-target fputc function.* @param  [in] ch* @param  [in] f* @retval int32_t*/
//int32_t fputc(int32_t ch, FILE *f)
//{
//    (void)f;  /* Prevent unused argument compilation warning */
//
//    return (LL_OK == DDL_ConsoleOutputChar((char)ch)) ? ch : -1;
//}int32_t fputc(int32_t ch, FILE *f)
{(void)f;  /* Prevent unused argument compilation warning */while(USART_GetStatus(CM_USART1, USART_FLAG_TX_EMPTY) == RESET);USART_WriteData(CM_USART1,(char)ch);return ch;
}

主循环中调用

例程里的,功能是将RX接收到的数据原样从TX发出

int32_t main(void)
{/* Peripheral registers write unprotected */LL_PERIPH_WE(EXAMPLE_PERIPH_WE);/* Configure BSP */BSP_Config();/* Peripheral registers write protected */LL_PERIPH_WP(EXAMPLE_PERIPH_WP);printf("hello");for (;;) {
//		printf("hello");
//		USART_WriteData(CM_USART1, 'a');if (SET == USART_GetStatus(USART_UNIT, USART_FLAG_RX_FULL)) {uint16_t u16RxData = USART_ReadData(USART_UNIT);/* Wait Tx data register empty */while (RESET == USART_GetStatus(USART_UNIT, USART_FLAG_TX_EMPTY)) {}USART_WriteData(USART_UNIT, u16RxData);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/868977.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读量子霸权03量子的崛起

瑞利-金斯灾变揭示牛顿力学漏洞,普朗克提出量子理论颠覆传统。爱因斯坦解释光电效应,薛定谔方程成量子基石。量子纠缠等理论展现量子世界奇妙,量子计算机应运而生。1. 瑞利-金斯灾变 1.1. 也被称为紫外灾变1.1.1. 在高频条件下发射的能量应该是无限大的,而这在现实中是根本…

宠物经济与即时零售:如何把握双赢机遇?

借助板栗看板,宠物食品和用品的即时零售模式可以实现从营销目标设定、库存管理、营销活动规划、顾客互动到数据分析与反馈的全链条优化。这不仅能够提升运营效率,还能增强品牌影响力,提升顾客满意度和忠诚度。宠物即时零售是近年来随着宠物经济的蓬勃发展和即时零售模式的兴…

manim边做边学--动画联动

今天介绍Manim中的动画联动的技巧,在数学动画中,动画联动是常用的功能, 比如讲解平面几何中三角形与圆的位置关系变化,通过动画联动可以让圆沿着三角形的边滚动,或者让三角形的顶点在圆上移动,从而直观地展示内切、外接等几何关系。 总之,通过动画联动,可以将复杂的概念…

刷力扣的技巧:4 个步骤 7 个关键点,事半功倍,冲进大厂!

最近好多人问我咋刷力扣呀,今天我就来给大家好好唠唠。我总结了7个要点和4个步骤,尤其是最后那提效4步骤,可太有用啦。 大家一定要看到最后哦,记得点赞、收藏呀。要点一:别光追求刷题量,题解也得看 咱好多同学呀,解开一道题就着急忙慌地去刷下一道,还把刷题数量当成衡量…

Linux 常用脚本命令-lsof、find、rpm、SS、top、vim

1,关机命令1 shutdown -h now/0 2 halt 3 init 0 4 poweroff 5 举例: 6 shutdown -h 3 ------3分钟后关机(可用shutdown -c来取消3分钟关机的操作)2,重启命令1 shutdown -r now/0 2 init 6 3 reboot 4 举例: 5 shutdown -r 3 ------3分钟后重启(可用shutdown -c来…

英伟达即将压缩AI模型的成本

在CES上,英伟达展示了一些有趣的新产品,其中最亮眼的是黄仁勋的新皮夹克。我的意思是,看看那件夹克:这是技术发布会还是时尚秀? 你不觉得惊艳吗? 说实话,我有点惊讶为什么更多人没有提到这个。这是黄仁勋迄今为止最棒的皮夹克。 当然,还有其他东西,比如全新的RTX 50系…

傅里叶级数

傅里叶级数 转自 https://zhuanlan.zhihu.com/p/609597010傅里叶级数的公式: 其中: 为了积分方便,积分区间一般设为[-π, π],也相当一个周期T的宽度。 1、把一个周期函数表示成三角级数:首先,周期函数是客观世界中周期运动的数学表述,如物体挂在弹簧上作简谐振动、单…

旅游巴士

旅游巴士一看题啥也不会 注意到数据点范围,发现有特殊性质 ai=0 ,也就是说,每个景点没有时间限制,所以在分层图上跑BFS最短路就行了。设 dis[i][j] 为到第 i 个点时,在时刻 t 时刻到达,记录为 t mod k=j,分为 j 层。 考虑正解,假设现在到达了 u 号点,在 t 时刻,要去往…

VS2022 安装 .NET Framework 4.0 和 .NET Framework 4.5 的方法

前言2022年5月27日,刚刚把VS2019升级到了VS2022,安装时已经不提供.NET Framework 4.0和.NET Framework 4.5的目标框架了,打开VS也提示不支持目标框架。 解决方法1、下载.NET Framework框架.NET Framework 4.5.2.NET Framework 4.5.1.NET Framework 4.5.NET Framework 4.0备…

《ESP32-S3使用指南—IDF版 V1.6》第二章 常用的C语言知识点

第二章 常用的C语言知识点 1)实验平台:正点原子DNESP32S3开发板 2)章节摘自【正点原子】ESP32-S3使用指南—IDF版 V1.6 3)购买链接:https://detail.tmall.com/item.htm?&id=768499342659 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/esp…

Avalonia 简单实现输入法光标跟随效果

本文将告诉大家如何在 Avalonia 里面实现输入法光标跟随效果本文是在 11.1.0 的 Avalonia 版本里面实现效果 本文内容里面只给出关键代码片段,如需要全部的项目文件,可到本文末尾找到本文所有代码的下载方法 核心是编写一个类型,让这个类型继承 TextInputMethodClient 类。然…

【一文详解】解决跨网文件传输三大瓶颈 选择专业文件摆渡系统

在数字化办公日益普及的今天,跨网文件传输成为许多企业面临的技术瓶颈。传统的文件传输方式往往无法满足跨地域、跨网络环境中的需求,尤其是随着数据量的增大和传输频率的提高,企业在进行文件交换时频繁遇到速度慢、安全性差、稳定性差等问题。因此,选择一款专业的文件摆渡…