HT32F52352芯片资料

作为一个开发者,学会找 / 看芯片资料很重要!找资料最好的方法就是直接在官网找

比如想找ht32f52352芯片的资料可以直接在合泰的官网下载。https://www.holtek.com.cn/productdetail/-/vg/HT32F52342-52

这里直接给出以下两份资料的下载地址
HT32F52342/HT32F52352开发使用手册
链接:[https://leoeinstein.lanzoux.com/iIhXgka7jkb]

开发使用手册里面具体介绍了芯片的各种功能寄存器及对应的地址。

HT32F52342/HT32F52352产品规格书
链接:https://leoeinstein.lanzous.com/iBO77ka7jcd

产品规格书里面有一个比较重要的就是各个引脚功能的定义说明,如下图:

串口初始化及例程

串口初始化注意事项:

(1)波特率设置、串口选择(USART 0/1)、模式设置等等等等,具体可参考下面这篇博文:

一、合泰32_Onenet_WiFi模块_合泰单片机通过MQTT协议数据上云(一)

二、《stm32f103系列单片机串口初始化》

以上两篇博文都涉及到串口,特别是第一篇!!!,里面的例程可以下载来用

(2)时钟一定要初始化,记得使能时钟!!!

USART.C 文件

#include "usart.h"
#include "ht32f5xxxx_gpio.h"
#include "ht32_board.h"
#include "ht32_board_config.h"/**************************实现函数********************************************
函数说明:配置usart串口*******************************************************************************/
void USART_Configuration(void)
{USART_InitTypeDef USART_InitStructure;CKCU_PeripClockConfig_TypeDef CKCUClock= {{0}};CKCUClock.Bit.AFIO = 1;COM1_CLK(CKCUClock)  = 1;  //开启时钟CKCU_PeripClockConfig(CKCUClock, ENABLE);AFIO_GPxConfig(USART_GPIO_GROUP, USART_TX_PIN, AFIO_FUN_USART_UART);AFIO_GPxConfig(USART_GPIO_GROUP, USART_RX_PIN, AFIO_FUN_USART_UART);/*波特率: 115200长度:   8bits停止位: 1位校验位: 无         模式:   正常模式*/USART_InitStructure.USART_BaudRate = 115200;USART_InitStructure.USART_WordLength = USART_WORDLENGTH_8B;USART_InitStructure.USART_StopBits = USART_STOPBITS_1;USART_InitStructure.USART_Parity = USART_PARITY_NO;USART_InitStructure.USART_Mode = USART_MODE_NORMAL;USART_Init(COM1_PORT, &USART_InitStructure);// 使能 COM1_PORT  发送和接收 USART_TxCmd(COM1_PORT, ENABLE);USART_RxCmd(COM1_PORT, ENABLE);//中断设置    NVIC_EnableIRQ(COM1_IRQn);USART_IntConfig(COM1_PORT, USART_FLAG_RXDR , ENABLE);USART_IntConfig(COM1_PORT, USART_FLAG_TXDE , ENABLE);/* 设置FIFO接收等级                                                                                   */USART_RXTLConfig(COM1_PORT, USART_RXTL_04);
}/**************************实现函数********************************************
函数说明:接收中断服务函数*******************************************************************************/
void COM1_IRQHandler(void)
{u8 data;if( USART_GetFlagStatus(COM1_PORT, USART_FLAG_RXDR ) )         //接收中断{data = USART_ReceiveData(COM1_PORT);                         //读取接收到的数据printf("data = %c\n",data);                                  //把收到的数据发送回电脑        }
}/**************************实现函数********************************************
函数说明:FIFO*******************************************************************************/
void USART_Tx(const char* TxBuffer, u32 length)
{int i;for (i = 0; i < length; i++){while (!USART_GetFlagStatus(COM1_PORT, USART_FLAG_TXC));USART_SendData(COM1_PORT, TxBuffer[i]);}
}/**************************实现函数********************************************
函数说明:发送一个字节*******************************************************************************/
void Usart_Sendbyte(HT_USART_TypeDef* USARTx, u8 data)
{USART_SendData(USARTx, data);while (USART_GetFlagStatus(USARTx, USART_FLAG_TXDE) == RESET);
}/**************************实现函数********************************************
函数说明:发送数组*******************************************************************************/
void Usart_SendArray(HT_USART_TypeDef* USARTx, u8 *array,u8 num)
{u8 i;for( i = 0;i < num;i++){Usart_Sendbyte(USARTx,*array);array++;}
}/**************************实现函数********************************************
函数说明:发送字符串*******************************************************************************/ void Usart_SendStr(HT_USART_TypeDef* USARTx, uint8_t *str)
{uint8_t i;for(i = 0;str[i] != '\0';i++){Usart_Sendbyte(USARTx,str[i]);}
}

USART.H 文件

#ifndef __USART_H
#define __USART_H
#include "ht32f5xxxx_usart.h"#define USART_GPIO_GROUP             (GPIO_PA)
#define USART_TX_PIN                 (GPIO_PIN_4)
#define USART_RX_PIN                 (GPIO_PIN_5)
#define USART_AFIO_MODE              (AFIO_FUN_USART_UART) //模式设置,默认模式:AFIO_MODE_DEFAULT ,AFIO_MODE_1~15对应模式1~15
#define COM1_PORT                    (HT_USART1)
#define COM1_IRQn                    (USART0_IRQn)void USART_Configuration(void);
void COM1_IRQHandler(void);
void Usart_Sendbyte(HT_USART_TypeDef* USARTx, u8 data);
void Usart_SendArray(HT_USART_TypeDef* USARTx, u8 *array,u8 num);
void Usart_SendStr(HT_USART_TypeDef* USARTx, uint8_t *str);
void USART_Tx(const char* TxBuffer, u32 length);
void USART_Rx(const char* RxBuffer, u32 length);
#endif

下面是花了10秒钟不够,写的简单的测试主函数。

usart.c里面还有特别多函数可以选择,感觉还不错,看各位自己发挥了!!!

main.c

#include "ht32.h"
#include "usart.h"int main(void)
{USART_Configuration();//串口初始化while (1){Usart_SendStr(COM1_PORT,"Hello World!");//循环发送字符串,测试用}
}

整个工程还涉及到其他合泰自带的文件,特别像我这样的初学者可能只有上面两个文件还不够,因此我把整个工程贴出来了,需要的自取,不用谢!

传送门:[https://leoeinstein.lanzous.com/iJOAhka8c1g]

合泰HT32F52352串口通信学习笔记相关推荐

  1. C#串口通信学习笔记

    因为参加一个小项目,需要对继电器进行串口控制,所以这两天学习了基本的串口编程.同事那边有JAVA的串口通信包,不过是从网上下载的,比较零乱,难以准确掌握串口通信的流程和内含.因此,个人通过学习网上大牛 ...

  2. STM32F767串口通信学习笔记

    STM32F767的串口使用,需要先开启串口时钟,再设置对应的IO模式,然后配置一下波特率,数据位长度,奇偶校验位信息就可以使用了. 基础知识  STM32F767IGT6 最多可提供 8 路串口,支 ...

  3. linux下串口通信详解,Linux操作系统下的串口通信学习笔记

    http://www.diybl.com/ 2008-7-5 网络 点击: [ 评论 ] - - 文章搜索:     [点击打包该文章] [本站开通在线QQ讨论群] CBAUDEX (不属于POSIX ...

  4. 合泰HT32 淘晶驰TJC--T0串口屏学习笔记

    串口屏开发环境搭建 串口屏的优点就不用多说了,用过的老师傅都说好! 开发专用上位机软件下载:传送门主要用来设计屏幕界面的,简单方便. 1.软件安装好后点击新建工程 2.选择你需要存放的目录,输入文件名 ...

  5. 合泰HT32--淘晶驰TJC--T0串口屏学习笔记(二)

    前言 经过上一次的串口屏学习,实现了单个页面的控件操作显示,但依旧还存在着许多需要解决的问题和优化的地方. 这次呢,主要实现串口屏多页面显示,及对应UI组件的控制. 上一篇串口屏链接:合泰HT32 & ...

  6. STM32 CAN总线通信学习笔记(一)

    STM32 CAN总线通信学习笔记(一) 一.CAN总线简介 CAN 是控制器局域网络(Controller Area Network, CAN)的简称.CAN采用数据块编码的方式,数据块根据帧的类型 ...

  7. 基于STM32的CAN总线通信学习笔记

    转自:https://blog.csdn.net/ludaoyi88/article/details/53350077 基于STM32的CAN总线通信学习笔记 本文主要简单介绍CAN总线的相关概念,以 ...

  8. CAN总线通信学习笔记

    CAN总线通信学习笔记 完整笔记链接:https://mubu.com/doc/67Rn6yaozhS CAN总线笔记目录 定义 底层原理 CAN信号传输 发送 接收 CAN总线结构.特点.分类 CA ...

  9. 串口通信学习(GPS模块)2021.5.10

    GPS串口通信学习实践 2021.5.10 1.串口通信简介 1.1 波特率 1.2 数据位 1.3 停止位 1.4 奇偶校验位 2.GPS模块串口通信配置 2.1 驱动安装 2.2 插入GPS模块 ...

最新文章

  1. python实现nginx图形界面管理
  2. (转)男人的真?。。。
  3. Java6程序设计基础教程_【Java】《Java程序设计基础教程》第三章学习
  4. 如何通过Bit-Z的场外交易购买BZ?(新手图文攻略)
  5. java 读取csv_Java读取CSV的常用方法 | 学步园
  6. android 存储方式以及路径简介
  7. 后台报错java.lang.IllegalArgumentException: Invalid character found in the request target.
  8. gpio stm8 管脚 配置工具_STM8S 外设模块的GPIO引脚应该如何配置
  9. Node介绍及环境配置~超级详细哦
  10. 可靠的Windows版Redis
  11. android手机 办公软件,Android手机办公软件推荐:WPS移动版(Kingsoft Office)
  12. endnote X7 超级初学者教程
  13. 什么是 Web 3.0?
  14. db_recovery_file_dest与log_archive_dest、log_archive_dest_n
  15. java中多种写文件方式的效率对比实验
  16. Larval安装使用Excel步骤
  17. 期货交易应该如何界定交易中的时间周期?
  18. Oracle数据库 SQL语句总结大赏
  19. 解决:浏览器下载的Excel文件显示“文件已损坏,无法打开”
  20. 你知道怎么快速将Ps(EPS)格式图片转成png、jpg等格式吗

热门文章

  1. 佛山天然文化石,莱福石材,佛山青石板
  2. AD20无法铺铜的原因
  3. Python实例8:利用条件结构计算个人所得税
  4. AS构建失败,提示Cause:connect timed out Connect to marven.google.com...connect time out
  5. Googlr VR SDK
  6. hdu 5544 Ba Gua Zhen(线性基+dfs)
  7. java perl 正则表达式_来自Perl类型正则表达式的Java正则表达式
  8. 坐标转换软件---coordgm_xpgod
  9. 一篇文章,带你了解微信扫码登录
  10. python--使用cnmaps绘制省界地图(快速上手,简单有效)