OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 738|回复: 0

驱动无IC段码屏——寄存器控制IO无法置高置低的问题

[复制链接]

11

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2023-8-29
在线时间
40 小时
发表于 2024-3-15 01:10:08 | 显示全部楼层 |阅读模式
15金钱
用STM32F103RCT6开发板驱动一个无IC段码屏(PMOLED ),写全显示画面程序如下,结果屏不亮,屏闭全显示画面,把用到的IO口置高置低测电压发现所IO口没有VDD电压。
求大佬帮看下问题出在哪里。


#include "stm32f10x.h"                  // Device header
#include "Delay.h"

//--------------APB2使能时钟寄存器------------------------
#define RCC_APB2ENR                *((unsigned volatile int*)0x40021018)

//----------------GPIOA/B/C/D/E 配置寄存器 ------------------------
#define GPIOB_CRL                *((unsigned volatile int*)0x40010C00)
#define GPIOB_CRH                *((unsigned volatile int*)0x40010C04)
#define GPIOB_ODR                *((unsigned volatile int*)0x40010C0C)

#define GPIOC_CRL                *((unsigned volatile int*)0x40011000)
#define GPIOC_CRH                *((unsigned volatile int*)0x40011004)
#define GPIOC_ODR                *((unsigned volatile int*)0x4001100C)
       

//----------------配置IO ------------------------
#define PB6_PPL    GPIOB_CRL&=0xF0FFFFFF; GPIOB_CRL|=0X02000000; GPIOB_ODR=0x0<<6; //PB6推挽低
#define PB6_PPH    GPIOB_CRL&=0xF0FFFFFF; GPIOB_CRL|=0X02000000; GPIOB_ODR=0x1<<6; //PB6推挽高
#define PB6_ODH    GPIOB_CRL&=0xF0FFFFFF; GPIOB_CRL|=0X06000000; GPIOB_ODR=0x1<<6; //PB6开漏高

#define PC7_PPL    GPIOC_CRL&=0x0FFFFFFF; GPIOC_CRL|=0X20000000; GPIOC_ODR=0x0<<7; //PC7推挽低
#define PC7_PPH    GPIOC_CRL&=0x0FFFFFFF; GPIOC_CRL|=0X20000000; GPIOC_ODR=0x1<<7; //PC7推挽高
#define PC7_ODH    GPIOC_CRL&=0x0FFFFFFF; GPIOC_CRL|=0X60000000; GPIOC_ODR=0x1<<7; //PC7开漏高

#define PC8_PPL    GPIOC_CRH&=0xFFFFFFF0; GPIOC_CRH|=0X00000002; GPIOC_ODR=0x0<<8; //PC8推挽低
#define PC8_PPH    GPIOC_CRH&=0xFFFFFFF0; GPIOC_CRH|=0X00000002; GPIOC_ODR=0x1<<8; //PC8推挽高
#define PC8_ODH    GPIOC_CRH&=0xFFFFFFF0; GPIOC_CRH|=0X00000006; GPIOC_ODR=0x1<<8; //PC8开漏高

#define PC9_PPL    GPIOC_CRH&=0xFFFFFF0F; GPIOC_CRH|=0X00000020; GPIOC_ODR=0x0<<9; //PC9推挽低  
#define PC9_PPH    GPIOC_CRH&=0xFFFFFF0F; GPIOC_CRH|=0X00000020; GPIOC_ODR=0x1<<9; //PC9推挽高
#define PC9_ODH    GPIOC_CRH&=0xFFFFFF0F; GPIOC_CRH|=0X00000060; GPIOC_ODR=0x1<<9; //PC9开漏高

#define PC10_PPL   GPIOC_CRH&=0xFFFFF0FF; GPIOC_CRH|=0X00000200; GPIOC_ODR=0x0<<10; //PC10推挽低  
#define PC10_PPH   GPIOC_CRH&=0xFFFFF0FF; GPIOC_CRH|=0X00000200; GPIOC_ODR=0x1<<10; //PC10推挽高
#define PC10_ODH   GPIOC_CRH&=0xFFFFF0FF; GPIOC_CRH|=0X00000600; GPIOC_ODR=0x1<<10; //PC10开漏高

#define PC11_PPL   GPIOC_CRH&=0xFFFF0FFF; GPIOC_CRH|=0X00002000; GPIOC_ODR=0x0<<11; //PC10推挽低  
#define PC11_PPH   GPIOC_CRH&=0xFFFF0FFF; GPIOC_CRH|=0X00002000; GPIOC_ODR=0x1<<11; //PC10推挽高
#define PC11_ODH   GPIOC_CRH&=0xFFFF0FFF; GPIOC_CRH|=0X00006000; GPIOC_ODR=0x1<<11; //PC10开漏高


//------------------------主函数--------------------------
int main()
{

        RCC_APB2ENR|=1<<2;                        //开启GPIOA外设时钟
        RCC_APB2ENR|=1<<3;                        //开启GPIOB外设时钟       
        RCC_APB2ENR|=1<<4;                        //开启GPIOC外设时钟

       
        while(1)
                {
////                 //////// 全显示  /////
//                  PB6_PPH; PC7_ODHC8_ODH; PC9_PPLC10_ODHC11_ODH;  Delay_ms(20);
//                  PB6_PPL; PC7_PPHC8_PPL; PC9_ODHC10_ODHC10_ODH;  Delay_ms(20);
//                  PB6_PPL; PC7_PPLC8_PPH; PC9_ODHC10_ODHC10_ODH;  Delay_ms(20);
//               PB6_ODH; PC7_PPLC8_ODH; PC9_PPH;PC10_PPL;PC10_PPL;  Delay_ms(20);
//               PB6_PPL; PC7_PPL;PC8_PPL; PC9_ODH;PC10_PPH;PC10_PPL;  Delay_ms(20);                       
//               PB6_PPL; PC7_ODH;PC8_PPL; PC9_ODH;PC10_ODH;PC10_PPH;  Delay_ms(20);


////                 //////// IO置高置低测电压  /////
                  PB6_PPL;  PC7_PPL; PC8_PPL; PC9_PPL; PC10_PPL; PC11_PPL;  Delay_ms(2000);
                  PB6_PPH; PC7_PPH;PC8_PPH; PC9_PPH;PC10_PPH; PC11_PPH;  Delay_ms(2000);
                  
                       
            }

}  


无IC段码屏驱动.rar

282.79 KB, 下载次数: 0

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 22:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表