• 【ARM】UART串口与看门狗——第五篇


    6d63dc5dd3994f75ae53a20768cc10f6.gif

    🏆 个人主页:🎈 长夜漫漫想学习 🎈

    🎁 本文收录专栏:🎈 ARM学习之路 🎈

    🛒 其他专栏:🎈 C语言学习之路 🎈

    📝 学习格言:路漫漫其修远兮,吾将上下而求索

    💡 欢迎点赞、关注、收藏( •̀ ω •́ )   一起努力,一起学习!

    目录

    1、UART串口实验

    1.1、通信方式

    2、UART资料查询

    2.1、电路原理图

    2.2、UART框图

    2.3、UART AFC接口

    2.4、UART的输入时钟图

    2.5、UART描述

    2.6、控制指定位

    2.7、GPA1CON

    2.8、UTRSTATn(状态寄存器)

    2.9、发送和接收缓冲区寄存器

    2.10、波特率

    3、UART通信程序

    4、Watchdog

    4.1、看门狗定时器框图

    4.2、看门狗定时器描述

    4.3、配置寄存器

    4.4、数据与计数寄存器

    4.5、Watchdog程序


    1、UART串口实验

            uart:通用异步收发传输器,是设备之间进行异步通信的模块(硬件) 负责处理数据总线和串行口的串/并转换,并规定了通信方式,uart可以实现全双工的通信(发送和接收),通过两根信号线完成(Tx,Rx) 使用uart进行通信时,通常需要添加—个合适的电平转换器。

    1.1、通信方式

    • 串行:每位数据,依次顺序传输

    • 并行:多位数据,齐头并进同时传输

    • 单工:规定只能由一端发送到另一端,规定了发送方和接收方

    • 半双工:可以进行双向通信,但是同一时刻只能完成发送或接收一个操作 ​ 全双工:可以同时进行双向通信

    • 同步:发送方在发送数据时,同时会发送一个同步的时钟信号,用于同步发送方和接收方的数据采样频率

    • 异步:异步通信是以字节为单位发送,同一个字符中的相邻两位的时间间隔是固定的,不同的字符间的时间间隔不确定,发送方和接收方进行确定以固定(相同)的频率进行采样

    2、UART资料查询

    2.1、电路原理图

     

    硬件设备连接:

                    通信设备             芯片

                    Tx----------------------Rx

                    Rx-------—------------TX

    2.2、UART框图

     

    传输的数据帧是可编程的,由线路控制指定位组成

    控制指定位

    • 1个起始位

    • 5至8个数据位

    • 可选的奇偶校验位

    • 1到2个停止位

    2.3、UART AFC接口

     

    • 采用FIFO的Rx操作

    • 采用FIFO的Tx操作

    2.4、UART的输入时钟图

     

    • Exynos 4412 SCP为UART提供多种时钟。

    • UART使用SCLK_UART 时钟,来自时钟控制器。

    2.5、UART描述

    2.6、控制指定位

     

    2.7、GPA1CON

     

    2.8、UTRSTATn(状态寄存器)

     

    2.9、发送和接收缓冲区寄存器

     

    2.10、波特率

     

    3、UART通信程序

    1. #define GPA1CON *((unsigned int *)0x11400020)
    2. #define ULCON2 *((unsigned int *)0x13820000)
    3. #define UCON2 *((unsigned int *)0x13820004)
    4. #define UBRDIV2 *((unsigned int *)0x13820028)
    5. #define UFRACVAL2 *((unsigned int *)0x1382002c)
    6. #define UTXH2 *((unsigned int *)0x13820020)
    7. #define URXH2 *((unsigned int *)0x13820024)
    8. #define UTRSTAT *((unsigned int *)0x13820010)
    9. void myputs(char * str)
    10. {
    11. int i;
    12. for(i = 0;str[i] != '\0'; i++)
    13. {
    14. //要发送数据一定要发送缓存寄存器为空,看状态寄存器,第一位为1就为空
    15. while(UTRSTAT & 2 == 0); //等于0就一直在当前循环执行
    16. UTXH2 = str[i];
    17. }
    18. }
    19. void delay()//延时函数
    20. {
    21. int i =0,j = 0;
    22. for(;i<1000000; i++)
    23. {
    24. for(;j < 1000000;j++);
    25. }
    26. }
    27. int main()
    28. {
    29. //设置GPIO,引脚为UART模式,GPA1_0,GPA1_1
    30. GPA1CON = GPA1CON & 0xff | 0x22;
    31. char a;
    32. //设置帧协议格式
    33. ULCON2 = 3;
    34. //控制寄存器,工作---有输出、输入(发送 接收)
    35. UCON2 = UCON2 & ~(0xf) | 5;
    36. //2、波特率设置
    37. UBRDIV2 = 53;
    38. UFRACVAL2 = 4;
    39. while(1)
    40. {
    41. myputs("接收数据成功\n");
    42. if( UTRSTAT & 1 != 0 ) //uart控制器接收到外部硬件的数据
    43. {
    44. UTXH2= URXH2; ; //返回数据内容
    45. delay();
    46. }
    47. }
    48. return 0;
    49. }
     
    

    4、Watchdog

    Exynos 4412 SCP中的看门狗定时器(WDT)是一个定时器件。

    • 支持带中断请求的正常间隔定时器模式。

    • 如果定时器计数值达到0(超时),则激活内部复位信号。

    • 支持电平触发的中断机制

    4.1、看门狗定时器框图

     

    4.2、看门狗定时器描述

     

    4.3、配置寄存器

     

    4.4、数据与计数寄存器

     

    WTCON寄存器:

    • 允许您启用/禁用看门狗定时器

    • 从四个不同的源中选择时钟信号

    • 启用/禁用中断

    • 启用/禁用看门狗定时器输出

    4.5、Watchdog程序

    1. #define WDTCON *((unsigned int *)0x10060000)
    2. #define WDTDAT *((unsigned int *)0x10060004)
    3. #define WDTCNT *((unsigned int *)0x10060008)
    4. //初始化 wdt看门狗
    5. void wdt_time()
    6. {
    7. //初始时钟频率100M hz
    8. //设置预分配 250
    9. WDTCON = WDTCON & ~(0xff<<8) | 249<<8;
    10. //设置固定分频 128
    11. WDTCON = WDTCON & ~(0x3<<3) | 0x3<<3;
    12. //设置复位
    13. WDTCON = WDTCON | 1;// WDTCON |= 1;
    14. //设置定时时间,----5s
    15. WDTDAT = 15625;//(存储定时时间)
    16. WDTCNT = WDTDAT;
    17. //启动看门狗
    18. WDTCON |= 1<<5;
    19. }

     ✨本篇到此结束啦!欢迎点赞👍收藏❤关注😎

    ade2d02221184de18874af569fd12e2c.png

  • 相关阅读:
    做数据产品半年后的体会总结
    如何在idea中修改包名(多图指导!超简单有效,不会报错)(maven项目)
    YAML文件格式
    2023-09-27力扣每日一题
    Linux基础篇_12_03
    如何使用轮播图实现水平内容自动切换
    eclipse教程
    9.java定时器
    随机森林random forest和Stepwise Clustered Ensemble (SCE)
    PTE考试预览
  • 原文地址:https://blog.csdn.net/qq_57768994/article/details/127235288