打印

EZBL串口选择

[复制链接]
1090|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiajs|  楼主 | 2021-10-11 22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好,我刚学习PIC单片机EZBL使用,请教下引导加载是用哪个串口,串口的选择和设置是在哪个文件中实现的?

使用特权

评论回复
沙发
heweibig| | 2021-10-11 22:28 | 只看该作者
你是指单片机这边的串口?

使用特权

评论回复
板凳
jlyuan| | 2021-10-11 22:30 | 只看该作者
还是电脑那端的串口?

使用特权

评论回复
地板
jiajs|  楼主 | 2021-10-11 22:32 | 只看该作者
我指的是单片机这边的串口。因为PIC单片机内有多个串口,EZBL加载用的是哪个呢?

使用特权

评论回复
5
wyjie| | 2021-10-11 22:34 | 只看该作者
我要用别的串口需要修改哪个文件?

使用特权

评论回复
6
chuxh| | 2021-10-11 22:40 | 只看该作者
这个很简单啊.你从main函数开始看, 看板子初始化的函数, 看UART初始化是哪个口, 不就是用的那个串口?!
#if defined(XPRJ_uart)  // Defined by MPLAB X on command line when compiling "uart" Build Configuration
    // Configure UART2 pins as UART.
    // - Pin names are with respect to the PIC.
    // - Outputs bits in TRIS registers are all set as inputs because the PPS or
    //   UART2 hardware overrides it.
    //
    // Function     Explorer 16 PIM Header      dsPIC33EP512MU810 Device Pins
    // UART2        PIM#, PICtail#, name        PIC#, name
    // U2RX  (in)     49, 34, RF4/PMPA9/U2RX      49, SDA2/PMA9/RP100/RF4
    // U2TX  (out)    50, 36, RF5/PMPA8/U2TX      50, SCL2/PMA8/RP101/RF5
    _CNPUF4    = 1;                         // Turn on weak pull up on U2RX so no spurious data arrives if nobody connected
    _U2RXR     = 100;                       // U2RX on RP100/RF4
    _RP101R    = _RPOUT_U2TX;               // U2TX on RP101/RF5
    if(EZBL_COMBaud <= 0)       // If auto-baud enabled, delay our UART initialization so MCP2221A POR timer and init
    {                           // is complete before we start listening. POR timer max spec is 140ms, so MCP2221A TX
        NOW_Wait(140u*NOW_ms);  // pin glitching could occur long after we have enabled our UART without this forced delay.
    }
    EZBL_COMBootIF = UART_Reset(2, FCY, EZBL_COMBaud, 1);
#endif

使用特权

评论回复
7
jiajs|  楼主 | 2021-10-11 22:42 | 只看该作者
我原有51C基础,对MCC、EZBL之类需要学习,感谢指导!我再琢磨琢磨。

使用特权

评论回复
8
yufe| | 2021-10-11 22:44 | 只看该作者
看规格书和例程

使用特权

评论回复
9
pengf| | 2021-10-11 22:46 | 只看该作者
一般是用第一个串口。

使用特权

评论回复
10
ousj| | 2021-10-11 22:48 | 只看该作者
如果自己会做BL程序,那你哪个串口都行

使用特权

评论回复
11
zhanghqi| | 2021-10-11 22:50 | 只看该作者
要注意选用哪个UARTx模块

使用特权

评论回复
12
wyjie| | 2021-10-11 22:52 | 只看该作者
UARTx模块 连接到哪两个IO口, 这是PPS功能

使用特权

评论回复
13
chuxh| | 2021-10-11 22:54 | 只看该作者
你看上面贴出来的代码, 模块是模块初始化, PPS配置是PPS配置, 不一样的哈

使用特权

评论回复
14
jiajs|  楼主 | 2021-10-11 22:56 | 只看该作者
我把例子中引导加载由串口2改为串口3成功了。但后来又遇到一个问题:用户app中有一个定时器3周期中断,只要一允许TMR3中断就会bootloader超时。

使用特权

评论回复
15
zwll| | 2021-10-11 23:02 | 只看该作者
你是不是没有理顺bootloader的功能?

使用特权

评论回复
16
chenjunt| | 2021-10-11 23:06 | 只看该作者
运行bt的时候, 是处于升级状态, 这个时候app应该是完全不运行的

使用特权

评论回复
17
chuxh| | 2021-10-11 23:12 | 只看该作者
运行app的时候, bt是不工作的.

使用特权

评论回复
18
pengf| | 2021-10-11 23:13 | 只看该作者
所以, 在bt的时候, app的中断是完全不应该运行的.

使用特权

评论回复
19
jiajs|  楼主 | 2021-10-11 23:15 | 只看该作者
禁止应用程序的TMR3中断加载就正常了,这到底是什么原因呢?

使用特权

评论回复
20
jiajs|  楼主 | 2021-10-11 23:18 | 只看该作者
我什么时候?在哪里禁止应用程序的中断。应用程序一开始就禁止中断的话,应用程序就不能正常工作了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

940

主题

11975

帖子

6

粉丝