不用库的情况下,如何实现STM8S单片机I/O口的按位操作
时间:10-02
整理:3721RD
点击:
很多新手在不用STM库函数的情况下,不知道如何多STM8的I/O口进行按位操作,下面把我刚开始用STM8的经验跟大家分享一下!
- <p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/*----------------------------------------------------------------------------*/
- //IO bits define</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port A data output bits*/
- volatile _Bool PA_ODR_0 @PA_ODR:0;
- volatile _Bool PA_ODR_1 @PA_ODR:1;
- volatile _Bool PA_ODR_2 @PA_ODR:2;
- volatile _Bool PA_ODR_3 @PA_ODR:3;
- volatile _Bool PA_ODR_4 @PA_ODR:4;
- volatile _Bool PA_ODR_5 @PA_ODR:5;
- volatile _Bool PA_ODR_6 @PA_ODR:6;
- volatile _Bool PA_ODR_7 @PA_ODR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port A data input bits*/
- volatile _Bool PA_IDR_0 @PA_IDR:0;
- volatile _Bool PA_IDR_1 @PA_IDR:1;
- volatile _Bool PA_IDR_2 @PA_IDR:2;
- volatile _Bool PA_IDR_3 @PA_IDR:3;
- volatile _Bool PA_IDR_4 @PA_IDR:4;
- volatile _Bool PA_IDR_5 @PA_IDR:5;
- volatile _Bool PA_IDR_6 @PA_IDR:6;
- volatile _Bool PA_IDR_7 @PA_IDR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port B data output bits*/
- volatile _Bool PB_ODR_0 @PB_ODR:0;
- volatile _Bool PB_ODR_1 @PB_ODR:1;
- volatile _Bool PB_ODR_2 @PB_ODR:2;
- volatile _Bool PB_ODR_3 @PB_ODR:3;
- volatile _Bool PB_ODR_4 @PB_ODR:4;
- volatile _Bool PB_ODR_5 @PB_ODR:5;
- volatile _Bool PB_ODR_6 @PB_ODR:6;
- volatile _Bool PB_ODR_7 @PB_ODR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port B data input bits*/
- volatile _Bool PB_IDR_0 @PB_IDR:0;
- volatile _Bool PB_IDR_1 @PB_IDR:1;
- volatile _Bool PB_IDR_2 @PB_IDR:2;
- volatile _Bool PB_IDR_3 @PB_IDR:3;
- volatile _Bool PB_IDR_4 @PB_IDR:4;
- volatile _Bool PB_IDR_5 @PB_IDR:5;
- volatile _Bool PB_IDR_6 @PB_IDR:6;
- volatile _Bool PB_IDR_7 @PB_IDR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port C data output bits*/
- volatile _Bool PC_ODR_0 @PC_ODR:0;
- volatile _Bool PC_ODR_1 @PC_ODR:1;
- volatile _Bool PC_ODR_2 @PC_ODR:2;
- volatile _Bool PC_ODR_3 @PC_ODR:3;
- volatile _Bool PC_ODR_4 @PC_ODR:4;
- volatile _Bool PC_ODR_5 @PC_ODR:5;
- volatile _Bool PC_ODR_6 @PC_ODR:6;
- volatile _Bool PC_ODR_7 @PC_ODR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port C data input bits*/
- volatile _Bool PC_IDR_0 @PC_IDR:0;
- volatile _Bool PC_IDR_1 @PC_IDR:1;
- volatile _Bool PC_IDR_2 @PC_IDR:2;
- volatile _Bool PC_IDR_3 @PC_IDR:3;
- volatile _Bool PC_IDR_4 @PC_IDR:4;
- volatile _Bool PC_IDR_5 @PC_IDR:5;
- volatile _Bool PC_IDR_6 @PC_IDR:6;
- volatile _Bool PC_IDR_7 @PC_IDR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port D data output bits*/
- volatile _Bool PD_ODR_0 @PD_ODR:0;
- volatile _Bool PD_ODR_1 @PD_ODR:1;
- volatile _Bool PD_ODR_2 @PD_ODR:2;
- volatile _Bool PD_ODR_3 @PD_ODR:3;
- volatile _Bool PD_ODR_4 @PD_ODR:4;
- volatile _Bool PD_ODR_5 @PD_ODR:5;
- volatile _Bool PD_ODR_6 @PD_ODR:6;
- volatile _Bool PD_ODR_7 @PD_ODR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port D data input bits*/
- volatile _Bool PD_IDR_0 @PD_IDR:0;
- volatile _Bool PD_IDR_1 @PD_IDR:1;
- volatile _Bool PD_IDR_2 @PD_IDR:2;
- volatile _Bool PD_IDR_3 @PD_IDR:3;
- volatile _Bool PD_IDR_4 @PD_IDR:4;
- volatile _Bool PD_IDR_5 @PD_IDR:5;
- volatile _Bool PD_IDR_6 @PD_IDR:6;
- volatile _Bool PD_IDR_7 @PD_IDR:7;</span></p>
直接操作寄存器,谢谢分享
这个我还真没看懂呢!汗。
一知半解。
找对应口的地址,直接操作地址就好
谢谢分享
毛病,发球啊毛病,发球啊
轻问PA_ODR是哪里定义的啊?编译时报错,用的是IAR编译的