CCR1是包括了CCR1H,CCR1L这两寄存器,这是C语言上的,你没有看到它定义的是int型的吗?已经把这两个声明为16位的地址了 赋值0x0E72,编译器会自动的把0x0E, 0x72送到CCR1H,CCR1L这两寄存器的 楼上已经有人告诉你了,你代码都写错了 操作CCR1H,CCR1L这两寄存器也是一样的可以,只是你没有做对而已 |
艾尔之光tt 发表于 2021-9-23 12:25 3698 = 0x0E72; 你写的是: 0x0E, 0x77 你确定是 不能动作,不是因为数值不对,达不到 你要的效果? 你DEBUG 的话 应该能看到, 不管是 PWMA_CCR1 = 3698 还是 分开写, 产生的编译后的代码都是一样的。 所以,你说得情况,应该是不存在的。 |
yzwzfyz 发表于 2021-9-23 08:41 CHAR是什么? |
这是由编译器说了算的。 [你的蓝底色下] 告诉编译器,CCR1H是CHAR,你如果按照CHAR法则去用它,看看行不行。 |