I am not in a position to test them all for each target everytime STM messes something up :P. They also changed other registers for IO breaking another lib of mine, but here they apparantly modified a 16-bit register to 32-bit for some reason. I didn't see the error at that function, but at the pinout. Changing that file solved it, even though the definition which you copied still had 16-bit. However out of fear it would then truncate values I also changed that one to 32-bit. (It was actually a special situation where it was used as 16-bit while the others were 32-bit).
I hope it now work properly, but besides that I don't have a Nucleo device that I can use currently, I don't have a Nucleo F103 at all. So I can't really test it, but I did modify it and commited it. So if you update your lib you have the latest version: I did not yet do the modifications I mentioned above, since they affect all STM targets without me being able to test it now.
If you would test it, and it works fine, you are welcome to make a pull request :).
Erik
Example scenario:
Every so often, I see the attached waveform. The low pulse propagates through the high pulsewave on each subsequent high pulse until it disappears outright. It will inevitably reappear in some amount of time and exhibit the same behavior.
Presumably, some of the calls to pulsewidth_us() are interrupting the pulsewave while it's high and the mcu is immediately reconfiguring the PWM registers, which results in the malformed waveform.
Is there any way to make these frequent calls to change the duration of the pin without malforming the wave?