打印
[PIC®/AVR®/dsPIC®产品]

功能该怎么调用

[复制链接]
986|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlyuan|  楼主 | 2021-12-6 21:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pzsh 于 2021-12-7 18:31 编辑

PIC18F46J11外设引脚选择(PPS)这个功能该怎么调用?

使用特权

评论回复
沙发
chuxh| | 2021-12-6 21:34 | 只看该作者
本帖最后由 chuxh 于 2021-12-6 21:36 编辑

你有什么打算呢?或者你想知道什么?

使用特权

评论回复
板凳
jlyuan|  楼主 | 2021-12-6 21:36 | 只看该作者
已经有汇编程序,但是在实习需要用C语言来完成一个器件的驱动,现在被卡在了串口2的使能阶段,现在贴串口2初试化代码
void Usart2Init(void){
    //GIE=0;
    asm(" MOVLW 0x55 ");
    asm(" MOVWF EECON2, 0 ");
    asm(" MOVLW 0xAA ");
    asm(" MOVWF EECON2, 0 ");
    PPSCONbits.IOLOCK=0;
    RPINR16=0X10//RP16为输入脚
    RPOR15=0x05;
    asm(" MOVLW 0x55 ");
    asm(" MOVWF EECON2, 0 ");
    asm(" MOVLW 0xAA ");
    asm(" MOVWF EECON2, 0 ");
    PPSCONbits.IOLOCK=1;
    ODCON2bits.U2OD=0;
    TRISC5=1;
    TRISC4=0;
    TXSTA2=0x24;//发送配置寄存器
    RCSTA2=0x90;//接收配置寄存器
    BAUDCON2bits.BRG16=0;
    SPBRG2=0x1F;//波特率寄存器,设置波特率为9600
    PIE3bits.RC2IE=1;
    RCONbits.IPEN=1;
    INTCONbits.GIE=1;
}

使用特权

评论回复
地板
jiajs| | 2021-12-6 21:38 | 只看该作者
PPS这一步出现了问题

使用特权

评论回复
5
zhanghqi| | 2021-12-6 21:40 | 只看该作者
手册里说要
在正常工作时,不允许写入RPINRx和RPORx寄存器。
尝试写入操作看似正常执行,但实际上寄存器的内容保
持不变。

使用特权

评论回复
6
chuxh| | 2021-12-6 21:42 | 只看该作者
要更改这些寄存器,必须用硬件进行解锁

使用特权

评论回复
7
dengdc| | 2021-12-6 21:44 | 只看该作者

存器锁定由 IOLOCK 位 (PPSCON<0>)控制。将
IOLOCK 置 1 可防止对控制寄存器的写操作;将
IOLOCK 清零则允许写操作。

使用特权

评论回复
8
jlyuan|  楼主 | 2021-12-6 21:46 | 只看该作者
要置 1 或清零 IOLOCK,必须执行特定的命令序列:
1. 将 55h 写入 EECON2<7:0>。
2. 将 AAh 写入 EECON2<7:0>。
3. 执行对 IOLOCK 清零 (或置 1)的单次操作。

使用特权

评论回复
9
xxrs| | 2021-12-6 21:50 | 只看该作者
IOLOCK 会保持一种状态直到被更改。这允许对所有的
PPS 寄存器这样进行配置:在对所有控制寄存器的更新
后紧跟一个解锁序列,然后用第二个锁定序列锁定。

使用特权

评论回复
10
jlyuan|  楼主 | 2021-12-6 21:52 | 只看该作者
然而又只能用行内汇编来写,实属无能为力,希望各位大佬能支支招

使用特权

评论回复
11
jlyuan|  楼主 | 2021-12-6 21:54 | 只看该作者
而且asm(" MOVWF EECON2, 0");这样的语句编译不通过,XC8编译器

使用特权

评论回复
12
wyjie| | 2021-12-6 21:57 | 只看该作者
C直接有函数__builtin_write_OSCCONL()可以解锁,不需要调用汇编程序。

使用特权

评论回复
13
chuxh| | 2021-12-6 22:00 | 只看该作者
试试看MCC,和MCC的代码比较比较就知道哪不对了,这是比较快的办法,连手册都不用看.

使用特权

评论回复
14
stly| | 2021-12-6 22:02 | 只看该作者

插入汇编干啥,不如直接用MCC生成基础代码。

使用特权

评论回复
15
xxrs| | 2021-12-6 22:04 | 只看该作者
同意楼上的建议,对于支持PPS功能的增强型,一定要用MCC,否则极易出错

使用特权

评论回复
16
jlyuan|  楼主 | 2021-12-6 22:06 | 只看该作者
这款单片机MCC不支持

使用特权

评论回复
17
heweibig| | 2021-12-6 22:08 | 只看该作者
不会汇编语言啊

使用特权

评论回复
18
jiahy| | 2021-12-6 22:10 | 只看该作者
真的看不太好

使用特权

评论回复
19
午夜粪车| | 2021-12-6 22:12 | 只看该作者
请问mcc是什么

使用特权

评论回复
20
wyjie| | 2021-12-6 22:16 | 只看该作者
具体卡在什么位置能知道吗

使用特权

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

本版积分规则

880

主题

12030

帖子

4

粉丝