瑞萨的管脚是有模拟数字复用的,并且区分输入和输出,因此在开启剩下的AD和CSI功能时,必须先对用到的管脚做一定的配置。如果是系统自带的模块,配置一次就可以(比如后面用的CSI),如果是用IO口去模拟某些通信协议(比如后面DS18B20的通信),双向数据口就必须注意读写的状态转换。
端口控制主要使用以下寄存器。
PMC:决定用作数字IO口(0)还是模拟IO口(1),因为复位后是0xff,所以想用作数字IO口,必须置0。只有PMC07和PMC10-16。因为LED灯在P00和P01,所以没关系。
PM:决定数字口是输入(1)还是输出(0)。默认全为输入。如果想点灯,那就要设为输出。
P:决定数字IO的初始电平的,复位后为0。
另外还有一个PIOR:是端口重定向用的。这个不是端口复用,而是把某个功能模块的引脚放到默认位置以外的地方去。(复位后,不重定向)。这个重定向有点小用,比如默认uart和csi是用相同管脚的,如果两个都要用,那么可以重定向一下(不过后来发现,CSI和uart在模块占用上也是有冲突的。。)
以上的很多寄存器可以byte或者bit访问,bit访问有些使用.操作,比如PM01就用PM0.1表示。但是有些bit是有自己的sfr name的话,就可以直接用,如ADCEN。这个可以通过颜色判断,sfr name会用褐色字体显示。