STC8H3K32S2 串口发送0X44电脑接收到的是0x60 0xFE
因为需要用ADC所有这次用了STC8H3K32S2 20脚的调试串口的时候很奇怪我发0x44 电脑却接收到的是0x60 0xFE定时器1和2都试了 不行 STC8H1K08 20脚 的一样的程序是正常的 无语了来位大佬帮看看#include "STC8H.H"
#define MAIN_Fosc 12000000UL//define main clock
#define Timer0_Reload (65536UL -(MAIN_Fosc / 100)) //Timer 0 intrrrupt, 100/s
#define BRT1152 (65536UL -(MAIN_Fosc / 115200/4))
#define BRT576 (65536UL -(MAIN_Fosc / 57600/4))
#define BRT384 (65536UL -(MAIN_Fosc / 38400/4))
#define BRT9600 (65536UL -(MAIN_Fosc / 9600/4))
void UART1_init(void)
{
P3M0 |=0x02; //P31, TXD
P3M1 &=~0x02;
TXD= 1;
P3M1 |=0x01; //P30, RXD
P3M0 &=~0x01;
P_SW2|=0X80;
P_SW1 = 0x00; //set
SCON = 0x50;
T2L = BRT9600;
T2H = BRT9600 >> 8;
AUXR |= 0x15; //timer2 1T mode, and start timer2
ES=1; //ENABLE uart1 interrupt
}
void UART1_send(unsigned char dat) // Uart1
{
SBUF=dat;
while(!TI);
TI=0; // Clear TX flag
}
void main()
{
init();
LED_B = 0;
LED_G = 0;
LED_R = 0;
LED_Y = 0;
delay_ms(500);
LED_G = 1;
LED_R = 1;
LED_Y = 1;
UART1_init();
delay_ms(100);
while (1)
{
LED_Y = 0;
UART1_send(0x44);
delay_ms(100);
LED_Y = 1;
delay_ms(100);
}
}
我也无语了,你为啥要用12000000?
串口通信一般推荐用11059200或其整倍数 Lkck8210 发表于 2024-6-6 14:25
我也无语了,你为啥要用12000000?
串口通信一般推荐用11059200或其整倍数
这有啥关系?最多有点偏差 但是现在是出了2个字节而且8H1K08就是正常的如果3K32因为这个不行 这个就是单片机的问题 Lkck8210 发表于 2024-6-6 14:25
我也无语了,你为啥要用12000000?
串口通信一般推荐用11059200或其整倍数
#define MAIN_Fosc 11059200UL//define main clock
#define Timer0_Reload (65536UL -(MAIN_Fosc / 100)) //Timer 0 intrrrupt, 100/s
#define BRT9600 (65536UL -(MAIN_Fosc / 9600/4))
改了 还是一样 发44收60 FE
你下载程序的时候主频选择的正确吧 _奶咖君_ 发表于 2024-6-6 16:34
你下载程序的时候主频选择的正确吧
正确的这个没问题 我只是不知道这2个芯片之间有什么特殊的差别导致这个原因 可以先下载例程检测一下。 soma 发表于 2024-6-6 18:13
可以先下载例程检测一下。
我试过范例程序的 也是不行的 范例更加奇怪发的44结果显示发的0D 0A收的18 FE 论坛里面有STC的工程师吗?你们试试我现在就一个光板在测试电源都是usb电源
zty3512321 发表于 2024-6-7 08:30
我试过范例程序的 也是不行的 范例更加奇怪发的44结果显示发的0D 0A收的18 FE 论坛里面有STC的工 ...
你点发送回车当然是0D 0A了。 zty3512321 发表于 2024-6-7 08:30
我试过范例程序的 也是不行的 范例更加奇怪发的44结果显示发的0D 0A收的18 FE 论坛里面有STC的工 ...
官方提供的例子都是测试过,而且经过很多用户验证的。
能不能详细介绍一下你用的是哪个例程包下的哪个例子进行的测试?
烧录到芯片前有修改过哪些地方?烧录时的硬件选项是如何设置的?
最好是直接使用例程原本的hex文件直接烧录测试,如果你的编译器有问题,就算什么都不改只是重新编译一次,生成的hex文件可能就会有问题。
页:
[1]
2