打印

PT32Y003 UART 复用例程

[复制链接]
578|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主



PT32Y003 UART 复用例程

/******************************************************************************
  * @example UART
  * @author  应用开发团队
  * @version V1.6.0
  * @date    2023/12/18
  * @brief   串口发送"欢迎使用PT32Y003x系列",使用其他设备向PT32Y003x MCU发送数据,MCU接收到的数据将通过串口打印出来
  *         
  ******************************************************************************
  * @attention        串口特性为:波特率9600,1位停止位,无奇偶校验
  *        注意:部分代码见PT32Y003x_it.c文件中UART0_Handler函数                                               
  *
  * 当前的固件仅供指导, 目的是向客户提供有关其产品的编码信息,以节省他们的时间。
  * 对于因此类固件的内容/或客户使用其中包含的编码信息而引起的任何索赔, * Pai-IC 不对任何直接, 间接或继发的损害负责。
  *
  * (C) 版权所有 Pai-IC Microelectronics
  *
  *****************************************************************************/
       
#include "PT32Y003x.h"

/**
* @brief 软件延时函数
* @param 无
* @retval 无
*/
void Software_Delay(void)
{
        u8 i, j,x;
        for(i=0; i<200; i++)
                for(j=0; j<200; j++)
                        for(x=0; x<20; x++);
}

/**
* @brief 配置UART的复用引脚
* @param 无
* @retval 无
*/
void UART_GPIO_Config(void)
{
        GPIO_DigitalRemapConfig(AFIOC, GPIO_Pin_7, AFIO_AF_0,DISABLE);        //PD5 TX0  PC7
        GPIO_DigitalRemapConfig(AFIOD, GPIO_Pin_1, AFIO_AF_0,DISABLE);        //PD6 RX0  PD1
       
       
        /* 配置UART管脚的复用功能 */
        GPIO_DigitalRemapConfig(AFIOC, GPIO_Pin_7, AFIO_AF_3,ENABLE);        //PD5 TX0  PC7
        GPIO_DigitalRemapConfig(AFIOD, GPIO_Pin_1, AFIO_AF_1,ENABLE);        //PD6 RX0  PD1
}

/**
* @brief 配置UART的工作模式
* @param 无
* @retval 无
*/
void UART_Mode_Config(void)
{
        UART_InitTypeDef  UART_InitStruct;
        NVIC_InitTypeDef NVIC_InitStruct;                                                        //定义一个NVIC_InitTypeDef类型的结构体
       
        /*NVIC配置*/
        NVIC_InitStruct.NVIC_IRQChannel = UART1_IRQn;                                //设置中断向量号
        NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;                                //设置是否使能中断
        NVIC_InitStruct.NVIC_IRQChannelPriority = 0x00;                                //设置中断优先级
        NVIC_Init(&NVIC_InitStruct);       
        UART_ITConfig(UART1,UART_IT_RXNEI,ENABLE);
       
        /*初始化UART0*/
        UART_InitStruct.UART_BaudRate = 9600;
        UART_InitStruct.UART_WordLengthAndParity = UART_WordLengthAndParity_8D;
        UART_InitStruct.UART_StopBitLength = UART_StopBitLength_1;
        UART_InitStruct.UART_ParityMode = UART_ParityMode_Even;
        UART_InitStruct.UART_Receiver=UART_Receiver_Enable;
        UART_InitStruct.UART_LoopbackMode=UART_LoopbackMode_Disable;
        UART_Init(UART1, &UART_InitStruct);

        /*开启UART0的收发功能*/
        UART_Cmd(UART1, ENABLE);
}

/**
* @brief UART驱动函数
* @param 无
* @retval 无
*/
void UART_Driver(void)
{
        UART_GPIO_Config();
        UART_Mode_Config();
}

extern u16 data_rx[20];
extern u8 cnt;
int main (void)
{
        u8 i=0;
        UART_Driver();
        printf("欢迎使用PT32Y003x系列\r\n");
        while(1)
  {
                while(cnt)
                {
                        UART_SendData(UART1,data_rx[i++]);
                        if(i==cnt)
                        {
                                i=0;
                                cnt=0;
                        }
                }
        }
}
       

#ifdef  USE_FULL_ASSERT
/**
  * @brief  Reports the name of the source file and the source line number
  *         where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(u8* file, u32 line)
{
        /* User can add his own implementation to report the file name and line number,
           ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
        printf("Wrong parameters value: file %s on line %ld\r\n", file, line);
        /* Infinite loop */
        while (1)
        {
        }
}
#endif


使用特权

评论回复

相关帖子

沙发
rickluo|  楼主 | 2024-6-13 09:45 | 只看该作者
产品介绍:
PT32Y003x 系列使用高性能低功耗的 Cortex™-M0 32位内核,最高工作频率可达48MHz,支持1.8V至5.5V工作电压及-40℃至+85℃的温度范围。内置多达16K 字节的MTP存储器、2K字节的SRAM和128字节EEPROM。集成多功能复用的I/O端口及丰富的外设功能:包含1个多达12通道的12位ADC,1个高级定时器,2个基本16位定时器和1个低功耗定时器。还集成1路SPI接口,1路I2C接口和2路UART 接口。支持两种低功耗模式。

主要特色:
超高性价比,低功耗(典型深度休眠待机功耗为3uA),主频最高到48MHz,强大的安全与保密性能,多种封装外型支持,全套开发板,代码示例支持, ESD(HBM):8KV,EFT: 4KV。

主要应用:
PT32Y003x系列产品适用于多种应用场合:
- 工业应用:
电机控制、医疗保健、小家电及电动工具
住宅、楼宇和城市自动化、变频器、打印机等等
- 消费类电子产品:
可穿戴设备、智能家居
充电器、无线充、锂电池充电、仪表显示
游戏外设、四轴飞行器、无线耳机
玩具及干电池类快消品等市场

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

440

帖子

4

粉丝