单片机
文章平均质量分 65
radarsmile
这个作者很懒,什么都没留下…
展开
-
TMP102温度传感器(二进制补码和原码相互转换)
以12位有符号数据为例,在TMP102中,bit11为符号位,有效数据只有11位[10:0]。而在32位单片机中,例如STM32中,有符号数据的符号位为bit31,有效数据为[30:0]。那么同样的负数,在不同系统中存储的编码是不同的。例如,在32位系统中,-400=0xFFFF_FE70。而16位系统中,-400=0xFE70,12位系统-400=0xE70。简单来说,整形int在不同的系统的寻址空间长度不一样。还有很多其他的芯片,寄存器内部也是保存着二进制补码,对于负数的读取也可以使用这种函数。原创 2024-08-03 14:15:27 · 291 阅读 · 0 评论 -
基于STM32 HAL库的自定义USB HID设备通信
最近有个项目需要用到STM32的高速通信,准备调试一下STM32的USB功能,但是发现F103C8T6只有全速USB,因此作为HID设备一帧只能发送64字节,最小间隔是1ms,显然这个是很慢不能满足要求了,高速USB还是只能外接高速USB PHY。这里只记录一下调试过程不说原理了,USB协议十分复杂,学习的书籍还是参考《圈圈教你玩USB》比较合适。1.代码生成 方便起见直接用CubeMX生成大部分的代码,然后在上面修改即可,步骤参见如下:https://www.cnblogs.com/untitl原创 2022-02-07 17:59:13 · 10214 阅读 · 1 评论 -
Keil添加printf输出串口
参考官方文档:https://www.keil.com/support/man/docs/jlink/jlink_trace_itm_viewer.htm 关于ITM的介绍参见:https://blog.csdn.net/hanchaoman/article/details/102494914 Debug (printf) Viewer可以通过ITM0输出printf内容,通过以下步骤可以打开显示串口输出。1.将ITM端口寄存器定义添加到源代码中。同时在源代码中添加一个写入ITM Port 0寄.原创 2022-01-06 10:44:59 · 3205 阅读 · 2 评论