首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UART通信dsPIC33EP256MU810

UART通信dsPIC33EP256MU810
EN

Stack Overflow用户
提问于 2016-03-22 13:27:42
回答 2查看 366关注 0票数 1

我对单片机编程非常陌生。

我在用

  • MplabX v3.26作为IDE
  • XC16编译器
  • PICKit 3
  • p33EP256MU810 (dspic)

用于编程

我编写了非常简单的程序来闪烁LED并在UART上发送少量字符,请参阅以下源代码:

代码语言:javascript
复制
#include <p33Exxxx.h>
#include <p33EP256MU810.h>
#include <libpic30.h>
#include <uart.h>
#include <stdlib.h>
#include <stdio.h>
#include <pps.h>
#include <xc.h>
#include <stdint.h>

// Configuration settings
_FOSC(FNOSC_FRCPLL);
_FWDT(FWDTEN_OFF);

int main() 
{    
//make all pins digital  
PADCFG1 = 0xFFFF; 

//set direction
TRISCbits.TRISC2 = 0;

//Initialze UART1
iPPSOutput(OUT_PIN_PPS_RP68, OUT_FN_PPS_U1TX);

//close UART
CloseUART1();

//open UART
OpenUART1(  UART_EN & UART_IDLE_CON & UART_DIS_WAKE & UART_DIS_LOOPBACK & UART_DIS_ABAUD & UART_NO_PAR_8BIT & UART_1STOPBIT,
            UART_TX_ENABLE & UART_INT_TX & UART_ADR_DETECT_DIS, 
            15);

while (1) 
{
    //turn on led 
    LATCbits.LATC2 = 1;
    __delay32(3750000);    // ~1 sec delay
    //turn off led
    LATCbits.LATC2 = 0;
    __delay32(3750000);    // ~1 sec delay


    //Transmit data
    while(BusyUART1());     //Wail till available
    WriteUART1(0x55);
    WriteUART1(0xaa);
    while(BusyUART1());     //Wail till all bytes sent
}

return 0;
}

LED闪烁部分工作得很好,但是我在UART的另一端接收垃圾字符,在那里我使用串行监视工具(X)来监视数据。

我的主要问题是我无法计算波德率。如果我做错了什么请告诉我。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-03-24 16:07:29

  1. 清除ANSELx寄存器以设置数字引脚,而不是写入PADCFG1
  2. 玩波特率。过程中的最后一个参数OpenUART1根据U1BRG页面147指定dsPic工具描述值。您还可以在执行U1BRG = value;后立即手动设置波特率。传递给UxBRG的值取决于时钟速度和所需的波特率,详细信息在USART手册页面9中。注意,如果手动设置波特率也需要设置或清除U1MODE.BRGH位。
票数 1
EN

Stack Overflow用户

发布于 2016-04-01 14:17:00

“我的主要问题是我无法计算波德率。如果我做错了什么,请告诉我。”

我不知道什么是理想的波德率,但:

  1. 在进行UxBRG计算时,请注意时钟(振荡器)的设置(因为您使用的是_FOSCSEL(FNOSC_FRCPLL)和启用的锁相环)。
  2. 您所描述的问题听起来像是错误的波德率(包括振荡器)计算,也可能是端口设置错误(数据库、奇偶校验、停止)。

希望这能帮上忙。

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

https://stackoverflow.com/questions/36155667

复制
相关文章

相似问题

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