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

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

[复制链接]
1053|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HucHenHao丶|  楼主 | 2020-6-4 14:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 HucHenHao丶 于 2020-6-4 14:47 编辑

已经有汇编程序,但是在实习需要用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;
}

现在怀疑就是PPS这一步出现了问题,因为手册里说要
在正常工作时,不允许写入RPINRx和RPORx寄存器。
尝试写入操作看似正常执行,但实际上寄存器的内容保
持不变。要更改这些寄存器,必须用硬件进行解锁。寄
存器锁定由 IOLOCK 位 (PPSCON<0>)控制。将
IOLOCK 置 1 可防止对控制寄存器的写操作;将
IOLOCK 清零则允许写操作。
要置 1 或清零 IOLOCK,必须执行特定的命令序列:
1. 将 55h 写入 EECON2<7:0>。
2. 将 AAh 写入 EECON2<7:0>。
3. 执行对 IOLOCK 清零 (或置 1)的单次操作。
IOLOCK 会保持一种状态直到被更改。这允许对所有的
PPS 寄存器这样进行配置:在对所有控制寄存器的更新
后紧跟一个解锁序列,然后用第二个锁定序列锁定。
然而又只能用行内汇编来写,实属无能为力,希望各位大佬能支支招

使用特权

评论回复
沙发
HucHenHao丶|  楼主 | 2020-6-4 14:55 | 只看该作者
而且asm(" MOVWF EECON2, 0");这样的语句编译不通过,XC8编译器

使用特权

评论回复
板凳
scottmaxwell| | 2020-6-4 22:04 | 只看该作者
MCC     

使用特权

评论回复
地板
北极风| | 2020-6-5 08:48 | 只看该作者
C直接有函数__builtin_write_OSCCONL()可以解锁,不需要调用汇编程序。

使用特权

评论回复
5
奔波儿熊| | 2020-6-5 11:25 | 只看该作者
试试看MCC,和MCC的代码比较比较就知道哪不对了,这是比较快的办法,连手册都不用看.

使用特权

评论回复
6
yiy| | 2020-6-5 20:00 | 只看该作者
插入汇编干啥,不如直接用MCC生成基础代码。

使用特权

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

使用特权

评论回复
8
HucHenHao丶|  楼主 | 2020-6-9 15:26 | 只看该作者
guojunhope 发表于 2020-6-5 22:44
同意楼上的建议,对于支持PPS功能的增强型,一定要用MCC,否则极易出错

这款单片机MCC不支持

使用特权

评论回复
9
HucHenHao丶|  楼主 | 2020-6-9 15:26 | 只看该作者
奔波儿熊 发表于 2020-6-5 11:25
试试看MCC,和MCC的代码比较比较就知道哪不对了,这是比较快的办法,连手册都不用看. ...

这款单片机MCC不支持

使用特权

评论回复
10
xiaoqizi| | 2020-7-7 16:48 | 只看该作者
俺不会汇编语言啊

使用特权

评论回复
11
木木guainv| | 2020-7-7 16:52 | 只看该作者
真的看不太好

使用特权

评论回复
12
磨砂| | 2020-7-7 16:52 | 只看该作者
请问mcc是什么

使用特权

评论回复
13
晓伍| | 2020-7-7 16:52 | 只看该作者
具体卡在什么位置能知道吗

使用特权

评论回复
14
八层楼| | 2020-7-7 16:53 | 只看该作者
楼主问题解决了吗

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝