找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

N76E003 串口使用115200波特率例程

[复制链接]
跳转到指定楼层
楼主
jamesliu 发表于 2018-6-27 13:56:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jamesliu 于 2018-6-29 10:37 编辑

N76E003如果串口使用115200波特率需要微调HIRC到16.6MHz,使用默认16MHz波特率会有很大的误差。
详见附件例程。
N76E003_UART0.zip (1.65 KB, 下载次数: 1779)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
匿名  发表于 2020-2-24 14:45:08
請問裡面提到"使能了串口中断就不要用printf", 有沒有解決辦法? 我想用printf, 也需要用uart輸入資料, 謝謝
回复 支持 反对

使用道具

板凳
 楼主| jamesliu 发表于 2020-3-6 14:28:02 | 只看该作者
那就自定义putchar函数
回复 支持 反对

使用道具 举报

地板
slotg 发表于 2020-7-20 14:39:20 | 只看该作者
请问一下,在规格书里修改 HIRC 的方式是直接读取 RCTRIM0,RCTRIM1 修改后再写入,不过在楼主的程序中是使用 IAP 读取数据后修改后再写入 RCTRIM0,RCTRIM1 ,这2种方式有什么不同吗?
回复 支持 反对

使用道具 举报

5#
匿名  发表于 2020-7-21 11:26:41
slotg 发表于 2020-7-20 14:39
请问一下,在规格书里修改 HIRC 的方式是直接读取 RCTRIM0,RCTRIM1 修改后再写入,不过在楼主的程序中是使 ...

寄存器RCTRIM0,RCTRIM1是有时效保护的,设置TA=0XAA;TA=0X55;后可以直接读写的。楼主程序里是先用IAP从flash里读取存储的HIRC修正值,再将修正值设置到寄存器RCTRIM0,RCTRIM1里。
回复 支持 反对

使用道具

6#
slotg 发表于 2020-7-21 14:01:46 | 只看该作者
游客 58.246.86.x 发表于 2020-7-21 11:26
寄存器RCTRIM0,RCTRIM1是有时效保护的,设置TA=0XAA;TA=0X55;后可以直接读写的。楼主程序里是先用IAP从fl ...

RCTRIM0,RCTRIM1 可以直接读取,但是写入的话是有时效访问保护,在官方的N76E003规格书(v1.08)里的处理方式是:
  1.     hircmap0 = RCTRIM0;
  2.     hircmap1 = RCTRIM1;
  3.     trimvalue16bit = ((hircmap0<<1)+(hircmap1&0x01));
复制代码

不过楼主程序的作法是:
  1.     set_IAPEN;
  2.     IAPAL = 0x30;
  3.     IAPAH = 0x00;
  4.     IAPCN = 0x04;
  5.     set_IAPGO;
  6.     hircmap0 = IAPFD;
  7.     IAPAL = 0x31;
  8.     IAPAH = 0x00;
  9.     set_IAPGO;
  10.     hircmap1 = IAPFD;
  11.     clr_IAPEN;
  12.     hircmap1 = hircmap1&0x01;
  13.     trimvalue16bit = ((hircmap0<<1)+(hircmap1&0x01));
复制代码

这2种不晓得有什么区别?

而 IAPCN 的控制码 0x04 应该是读96位UID,但是楼主程序里的地址 0x0030 是什么数据呢?
回复 支持 反对

使用道具 举报

7#
匿名  发表于 2020-7-21 17:11:12
slotg 发表于 2020-7-21 14:01
RCTRIM0,RCTRIM1 可以直接读取,但是写入的话是有时效访问保护,在官方的N76E003规格书(v1.08)里的处理方 ...

30 31位置存储的是16MHZ的校准值。从这里读取出来再微调后存到寄存器RCTRIM0,RCTRIM1比较准。如果用读RCTRIM0,RCTRIM1值来做运算的话,有可能RCTRIM0,RCTRIM1的值已经是被改动过却不知道。
回复 支持 反对

使用道具

8#
slotg 发表于 2020-7-21 20:56:23 | 只看该作者
游客 58.246.86.x 发表于 2020-7-21 17:11
30 31位置存储的是16MHZ的校准值。从这里读取出来再微调后存到寄存器RCTRIM0,RCTRIM1比较准。如果用读RCT ...

谢谢,请问30,31这些IAP地址的功能在那份文件可以查到?
回复 支持 反对

使用道具 举报

9#
chrishu 发表于 2020-7-22 10:03:06 | 只看该作者
没有向客户开放这部分资料
回复 支持 反对

使用道具 举报

10#
匿名  发表于 2021-5-14 10:16:46
把HIRC到16.6MHz是不是UAT0和UAT1都可以115200呀
回复 支持 反对

使用道具

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU