实验环境:
stm32f103vct6 + mdk5.23
未使用操作系统
实验目的:
单片机上实现了一个modbus从机与上位机进行交互。
期望达到如下效果:
例如,在modbus寄存器中有一个baudrate变量,当上位机通过写保持寄存器(功能码0x10)发送数据来更新baudrate寄存器,那么单片机直接调用baudrate_init()函数初始化硬件串口波特率。
实验过程:
我当前解决办法:
在while(1)中轮训查看该变量的值,如果变量被修改,那么调用baudrate_init()。
* 这种方式有点笨。
* 实时性得不到保证(不止一个变量,类似变量还有很多,而且有的变量还对实时性有一定要求)。
我期望解决办法:
最好能实现类似中断调用,当该寄存器内容被修改,自动进入xxx中断,在中断服务函数中完成调用baudrate_init()。
实验问题:
如果不能通过中断方式解决(据我所知,单片机根本没有内存数据修改中断,哈哈),有没有其它软件思路、方式、机制等能实现类似效果?
恳请各路大神各显神通!在此感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
缺点是(STM32上)只有4个;另外可能不能在debug模式下用。
一周热门 更多>