<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NanoFramework &#8211; 岁月细碎点滴快查</title>
	<atom:link href="https://blog.mutadecheng.com/category/nanoframework/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.mutadecheng.com</link>
	<description></description>
	<lastBuildDate>Mon, 16 Sep 2024 18:34:41 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>MCP23017 引脚类型</title>
		<link>https://blog.mutadecheng.com/2024/09/17/mcp23017-%e5%bc%95%e8%84%9a%e7%b1%bb%e5%9e%8b/</link>
		
		<dc:creator><![CDATA[木它]]></dc:creator>
		<pubDate>Mon, 16 Sep 2024 18:34:41 +0000</pubDate>
				<category><![CDATA[NanoFramework]]></category>
		<guid isPermaLink="false">https://blog.mutadecheng.com/?p=220</guid>

					<description><![CDATA[MCP23017是一款I/O扩展芯片，通过I2C接口与主控器进行通信。该芯片有多个寄存器，用于配置和控制其GP [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><code>MCP23017</code>是一款I/O扩展芯片，通过I2C接口与主控器进行通信。该芯片有多个寄存器，用于配置和控制其GPIO引脚。以下是一些常用的寄存器及其功能说明：</p>



<ol class="wp-block-list">
<li><strong>IODIR（I/O方向寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>IODIRA</code>和<code>IODIRB</code>分别用于配置Port A和Port B的每个引脚是输入还是输出。</li>



<li>每个位设置为1表示对应的引脚为输入，设置为0表示为输出。</li>
</ul>



<ol class="wp-block-list">
<li><strong>IPOL（输入极性寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>IPOLA</code>和<code>IPOLB</code>用于反转输入引脚的极性。</li>



<li>设置为1会反转输入信号的极性（高电平变低电平，低电平变高电平）。</li>
</ul>



<ol class="wp-block-list">
<li><strong>GPINTEN（GPIO中断使能寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>GPINTENA</code>和<code>GPINTENB</code>用于使能Port A和Port B的引脚中断。</li>



<li>设置为1使能中断，0则禁用该引脚的中断。</li>
</ul>



<ol class="wp-block-list">
<li><strong>DEFVAL（默认比较值寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>DEFVALA</code>和<code>DEFVALB</code>用于设置Port A和Port B的每个引脚的默认比较值。</li>



<li>当<code>INTCON</code>寄存器对应位设置为1时，会将输入引脚的值与<code>DEFVAL</code>进行比较以触发中断。</li>
</ul>



<ol class="wp-block-list">
<li><strong>INTCON（中断控制寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>INTCONA</code>和<code>INTCONB</code>用于控制Port A和Port B的中断触发条件。</li>



<li>设置为1时，中断触发条件为引脚输入值与<code>DEFVAL</code>比较不相等；设置为0时，中断触发条件为引脚电平变化。</li>
</ul>



<ol class="wp-block-list">
<li><strong>GPPU（GPIO上拉电阻寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>GPPUA</code>和<code>GPPUB</code>用于使能Port A和Port B引脚的内部上拉电阻。</li>



<li>设置为1使能内部上拉电阻，0则禁用。</li>
</ul>



<ol class="wp-block-list">
<li><strong>INTF（中断标志寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>INTFA</code>和<code>INTFB</code>用于标记Port A和Port B的中断引脚。</li>



<li>读取该寄存器可以确定哪个引脚触发了中断。</li>
</ul>



<ol class="wp-block-list">
<li><strong>INTCAP（中断捕获寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>INTCAPA</code>和<code>INTCAPB</code>用于保存Port A和Port B的引脚在中断时的状态。</li>



<li>读取该寄存器会清除中断标志。</li>
</ul>



<ol class="wp-block-list">
<li><strong>GPIO（GPIO寄存器）</strong>：</li>
</ol>



<ul class="wp-block-list">
<li><code>GPIOA</code>和<code>GPIOB</code>用于读取和写入Port A和Port B引脚的状态。</li>



<li>读取该寄存器可以获取当前引脚的状态，写入则可设置输出引脚的状态。</li>
</ul>



<ol class="wp-block-list">
<li><strong>OLAT（输出锁存寄存器）</strong>：
<ul class="wp-block-list">
<li><code>OLATA</code>和<code>OLATB</code>用于锁存Port A和Port B的输出状态。</li>



<li>写入该寄存器可以改变输出引脚的状态，读取则返回锁存的状态。</li>
</ul>
</li>
</ol>



<p>这些寄存器提供了丰富的功能来配置和控制MCP23017的GPIO引脚。使用这些寄存器时，需要根据具体应用需求进行设置，以实现所需的功能。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
