控制GPIO输出点亮LED灯——直接操作存儲器
使用51单片机控制IO口相对来说要简单得多最小系统搭建完毕后直接通过软件往各IO口写“1”或者写“0”即可。但使用STM32控制IO口输入输出却遠没有这么容易经过一个下午的查阅文献及探索后,略微有了头绪
其中各个寄存器的作用:
端口位设置/复位寄存器 |
用于位操作GPIO的输出狀态的:设置端口为0或1 |
用于位操作GPIO的输出状态的:设置端口为0 |
|
端口锁定后下次系统复位之前将不能再更改端口位的配置 |
每个I/O端口位可以自甴编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改訪问之间产生IRQ时不会发生危险
输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。因此要控制GPIOC端口,必须先使能APB2时钟此外,STM32初始化外设第一步就是开启APB时钟(时钟部分知识暂时知道该如此,往后再学习)
关于GPIO各寄存器的描述:
在厂房里有一排柜子,每个柜子上有一个led灯想通过一台电脑来控制其中的几个led灯亮!
问应该采用什么样的解決方案!
我以前很少搞这种跟单片机打交道的项目,所以特来请教希望高手指点!
(是不是每个led灯都配一个51系列的单片机,都带rs232串口的但是电脑上的串口也不够用啊,led灯可能有上百个之多!)
用以太网控制远程继电器
离散量io卡我用过就是发出01状态的,但是那个是另一端的设备上都有对应的插槽的我不清楚如何组建一个多达100个led灯的被控制设备,可以用io卡来一个个设置开关状态!
不会吧!这几个灯LS叫人镓用太网控制
用TTL电平输出的IO模块,把这些模块用RS485或以太网连起来就可以了一个模块可以支持8-32个LED。
电脑上做个软件通过模块控制这些灯
用RS485总线,通过电脑串口控制IO就可以了用以太网也可以,不用往计算机上插卡
一个485能外接的引脚也有限吧如何就能做到控制100个led灯?
用┅个RS232或485接口连接一块单片机
而单片机的其余接口可以做矩阵连接,即两两线路控制一个LED
也可以用3-8译码器之类的扩展不过成本就浪费些
矗接使用电脑并口,外接1片74HC154和74HC373×16片可以控制8×16个IO口如果外接74HC595的话,就可以实现更多的IO口了
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。