slo057 发表于 2024-9-2 16:44:31

使用AI-ISP (V6.94J) UART Baudrate Tool , BRT = 0xFF KEIL编译失败

使用AI-ISP (V6.94J)
其中的UART Baudrate Tool

void Uart1_Init(void)      //921600bps@33.1776MHz
{
PCON &= 0x7F;                //Baudrate no doubled
SCON = 0x50;                //8 bits and variable baudrate
AUXR |= 0x04;                //imer clock is 1T mode
BRT = 0xFF;                        //Set reload value
AUXR |= 0x01;                //UART1 use BRT as baudrate generator
AUXR |= 0x10;                //BRT running
}

KEIL编译
显示 BRT = 0xFF KEIL编译失败
请问BRT是什么 要怎么处理

_奶咖君_ 发表于 2024-9-2 17:11:54

看看芯片对应的手册里有没有这个寄存器,,,看起来你选择不是使用定时器作为波特率发生器,,

新一点儿的单片机已经没有独立波特率发生器的说,,,最好你还是看看你用的片子有没有这个东西吧

晓飛飛 发表于 2024-9-2 17:11:57

本帖最后由 晓飛飛 于 2024-9-2 17:26 编辑

BRT在辅助寄存器AUXR里的最低位,是独立的串口波特率使能配置位,一些旧型号的单片机是可以支持的,但在新的单片机手册里面几乎没什么描述,应该是新单片机不支持相应的功能,头文件里面这个寄存器为S1BRT,你试试把BRT修改为S1BRT看看能不能用,我这边不方便测试。
另外强烈建议用定时器做波特率发生器,这个不管是老单片机还是新单片机,都是确认没问题的。

DebugLab 发表于 2024-9-2 17:34:50

BRT是这么用的




DebugLab 发表于 2024-9-2 17:36:27

DebugLab 发表于 2024-9-2 17:34
BRT是这么用的

编译器自动运算后写入定时器

autopccopy 发表于 2024-9-2 19:18:13

【编译失败】--》上个截图,看看是什么提示?

24

slo057 发表于 2024-9-2 20:37:16

01. UART Baudrate Tool
02. 程式码
03. KEIL编译失败


autopccopy 发表于 2024-9-2 21:11:42

slo057 发表于 2024-9-2 20:37
01. UART Baudrate Tool
02. 程式码
03. KEIL编译失败


这个是未定义的错误。
我用STC-ISP V6.94H版的工具试了一下,你选的是“独立波特率发生器”选项,故要看你的器件是否包含这个资源。

我查了一下,这个BTR好像只有STC12C系列有,其他系列请选择其他的选项,例如定时器1,定时器2。程序需包含该芯片的对应的头文件(可在stc-isp统一添加)。

36

DebugLab 发表于 2024-9-2 22:36:26

DebugLab 发表于 2024-9-2 17:34
BRT是这么用的

建议使用定时器2做波特率发生器,像这样定义
页: [1]
查看完整版本: 使用AI-ISP (V6.94J) UART Baudrate Tool , BRT = 0xFF KEIL编译失败