近期用逻辑分析仪分析一个别人开发的STC 1T系列的单片机IO口的数据(这几个IO均为普通IO口且不在同一组),电平的跳变很一致,不知是用什么方法实现的,如下图:
自己用MINI的板子写程序试了一下,如果单独操作同一组内的IO口电平跳变的话是可以做到同步;但是操作不同组的IO(比如PC4.5.6.7和PB8.9.10.11同时置1,然后同时置0,置1,……)怎么也不能实现同步跳变,如下图:
其中试过宏定义的方法把不同组IO转换成像操作同一组IO一样的方式操作,还是不能解决!
#define PORT_DATA(x){GPIOB->ODR=(x<<4)&0x0F00;GPIOC->ODR=(x<<4)&0x00F0;}
这个问题困扰我很久了,哪位大侠能帮我解惑,还望不吝赐教!谢谢了!顺便祝大家元旦快乐!!!
所以我看STM32做这个,用位寻址的方式怕不是行。不过我也不太了解cortex-m的汇编指令。
一周热门 更多>