zoukankan      html  css  js  c++  java
  • Uart串口


    title: Uart串口
    tags: ARM
    date: 2018-10-20 16:38:28

    Uart串口

    和单片机的应用没什么区别,首先设置IO复用,设置波特率和数据位,以及中断相关的,简单的应用测试可以先关掉中断.从下图看到,usb转串口连接到COM1COM1是内部的Uart0

    mark

    mark

    程序初始化

    UART0
    RX0 GPH3
    TX0 GPH2
    //init uart
    void Uart0_init()
    {
    	//配置GPIO 复用为uart
    	//配置相应的 GPHCON 为10 串口
    	// 也就是 _BIT5,BIT7 置1  BIT4,BIT6清零
    	GPHCON &=~(_BIT4|_BIT5|_BIT6|_BIT7);
    	GPHCON |=(_BIT5|_BIT7);
    
    	//设置上拉
    	GPHUP &=~(_BIT2|_BIT3);
    
    	//禁止红外,8N1
    	ULCON0=(_BIT0|_BIT1);
    
    	// PCLK(50M),中断/查询模式打开
    	// FCLK : HCLK : PCLK = 400m : 100m : 50m
    	UCON0 = (0x01)|(0x01<<2); 
    	UBRDIV0=26;//CLK/(baund*16)-1
    
    
    	//UFCON0 FIFO 不使用
    	//UMCON0 不使用流控
    	//UTRSTAT0 中断标志位
    	//UERSTAT0 错误标志
    	//UFSTAT0  FIFO标志
    	//UMSTAT0  模式配置,CTS
    	//UTXH0、URXH0    BUF
    
    	//这里要清除标志位,不然好像有点问题
    	UTRSTAT0=0x06;
    }
    
    int putchar(int c)
    {
    	while(!(UTRSTAT0&_BIT2));
    	// UTXH0 被定义为uint,这里应该是char类型的地址0x50000023(B) 
    	UTXH0 = (unsigned char )c;
    }
    int getchar(void)
    {
    	while(!(UTRSTAT0&_BIT0));
    	return URXH0;
    }
    
    int puts(const char *s)
    {
    	while(*s)
    	{
    		putchar(*s);
    		s++;
    	}
    }
    
  • 相关阅读:
    将VSCode添加至右键菜单(Windows下)
    VSCode 快捷键
    dijkstra 优先队列最短路模板
    运营苹果手机“盗改销”、色情网站的黑产组织追踪
    Wireshark 设置显示端口号
    IDA_API_Help
    IDA配置
    windbg vmware配置
    !heap命令问题 Windbg
    落户
  • 原文地址:https://www.cnblogs.com/zongzi10010/p/10023572.html
Copyright © 2011-2022 走看看