首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >图32波特率

图32波特率
EN

Stack Overflow用户
提问于 2020-12-02 18:06:12
回答 1查看 203关注 0票数 1

我有一台PIC32MX460F512L。我正在设置一个与raspberry Pi 3的UART通信。我还用mi PC Windows串行终端(Putty,Teraterm等)进行了一些测试。我有问题,因为树莓只发送和接收垃圾。然后我在Windows上用putty测试了它,我注意到了一些奇怪的事情。例如,板上的uart波特率设置为9600,而要在windows上发送和接收数据,我必须将putty的波特率设置为130 !!然后我看了看我的PCLK设置在pic上,似乎一切都是正确的,因为有一个8 8MHz的外部clk振荡器。我发布了下面的代码。

PIC代码:

代码语言:javascript
运行
复制
#define GetSystemClock() (80000000ul) // Hz
#define GetInstructionClock() (GetSystemClock()/1)
#define GetPeripheralClock() (GetInstructionClock()/1) //

long Baud_Rate;





    Baud_Rate = 9600;
    TRISFbits.TRISF8 = 0; // Set UART1TX like output
    TRISFbits.TRISF2 = 1; // Set UART1RX like input
    U1MODE = 0x00008000;
    U1STA = 0x00001400; // RXEN set, TXEN set

    U1BRG = ((USART_Clock_Source)/(Baud_Rate/16))-1;

可能是外部振荡器出现故障,或者波特率计算出现错误?我听不懂。

EN

Stack Overflow用户

发布于 2020-12-02 20:05:06

下面是一个错误:

代码语言:javascript
运行
复制
U1BRG = ((USART_Clock_Source)/(Baud_Rate/16))-1;

它应该是:

代码语言:javascript
运行
复制
U1BRG = ((USART_Clock_Source)/(Baud_Rate*16))-1;

还有这个:

代码语言:javascript
运行
复制
#define GetSystemClock() (80000000ul) // Hz

应该是

代码语言:javascript
运行
复制
#define GetSystemClock() (8000000ul) // Hz

在此计算中,指令频率是8 MHz,而不是时钟频率。指令频率是时钟的一半。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65105927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档