如何实现对IO口输出位置“1”、清零与取反 *** 作

如何实现对IO口输出位置“1”、清零与取反 *** 作,第1张

你好,这个问题其实用C语言的知识就能解决,我们知道430单片机是不好直接对位进行 *** 作的,不像51单片机可以进行位定义,从而直接对需要的位进行取反。你所提出的问题用移位指令就可以了,我给你个例子如下:比如我们要对PI口的低4位进行取反:

PIOUT=P1OUT|(~(PIOUT<<4)>>4)

例子:如PIOUT=1111 0101 左移4位后得0101 0000 取反得:1010 1111 右移4位得:0000 1010 再和原来的数值进行或 *** 作,得到:11111010,即可以对它低4位取反,而高四位的值不变。以此类推。

直接这么写肯定不行,STM32不支持

你可以每来一个中断,一个计数变量x加一,用这个变量x%2,

if (x==0)PB5SetBit

if(x!=0)PB5ResetBit

大概就是这种思路,C语言灵活性很强,多想想还有很多办法的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11989873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存