标题: 关于stm8s单片机的库函数和寄存器问题请教 [打印本页]

作者: 1588848    时间: 2021-8-28 13:10
标题: 关于stm8s单片机的库函数和寄存器问题请教
库函数
#define OLED_SCLK_Clr()   GPIO_WriteLow(GPIOB, GPIO_PIN_4)
#define OLED_SCLK_Set()  GPIO_WriteHigh(GPIOB, GPIO_PIN_4)
#define OLED_SDIN_Clr()   GPIO_WriteLow(GPIOB, GPIO_PIN_5)
#define OLED_SDIN_Set()  GPIO_WriteHigh(GPIOB, GPIO_PIN_5)
寄存器
#define OLED_SCLK_Clr()   PB_ODR_bit.ODR4 = 0
#define OLED_SCLK_Set()  PB_ODR_bit.ODR4 = 1
#define OLED_SDIN_Clr()   PB_ODR_bit.ODR5 = 0
#define OLED_SDIN_Set()  PB_ODR_bit.ODR5 = 1

引脚初始化都是用的下面的寄存器版
void OLED_Init(void)
{
  PB_DDR_bit.DDR4 = 1;   //设置PB->4 为输出
  PB_CR1_bit.C14 = 1;    //设置为推挽输出
  PB_CR2_bit.C24 = 1;    //设置高速输出
  PB_ODR_bit.ODR4 = 0;  //设置低电平输出

  PB_DDR_bit.DDR5 = 1;   //设置PB->5 为输出
  PB_CR1_bit.C15 = 1;    //设置为推挽输出
  PB_CR2_bit.C25 = 1;    //设置高速输出
  PB_ODR_bit.ODR5 = 0;  //设置低电平输出
}
如上,宏定义这两个应该是等价的,一个是库函数操作,一个是直接操作寄存器,问题是上面的库函数正常显示,下面的寄存器就不行,编译不报错但是不显示,问题出在哪里百思不得其解
还请大神指教,谢谢







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1