迪文科技论坛

 找回密码
 立即注册
搜索
查看: 1313|回复: 5

stm32 配置端口 怎么移植到 t5l上

[复制链接]

4

主题

4

回帖

31

积分

新手上路

Rank: 1

积分
31
发表于 2019-12-18 11:08:30 | 显示全部楼层 |阅读模式




pb8-pb15改成p3.3 p3.2  p2.2-p2.7 怎么修改啊
pa4-pa7 改成 p1.5-p1.6 p2.0-p2.1
回复

使用道具 举报

4

主题

4

回帖

31

积分

新手上路

Rank: 1

积分
31
 楼主| 发表于 2019-12-18 11:26:38 | 显示全部楼层
#define DATAOUT(x)  GPIOB->ODR=GPIOB->ODR&0x00FF|x<<8       //显示数据输出                   PB8~PB15
#define CEOUT(x)    GPIOA->ODR=GPIOA->ODR&0xFF0F|x<<4       //138片选数据输出                PA4~PA7

这个是stm32端口配置
回复

使用道具 举报

0

主题

181

回帖

1935

积分

金牌会员

Rank: 6Rank: 6

积分
1935
发表于 2019-12-18 11:58:05 | 显示全部楼层
T5L IO口使用的时候用sbit定义。
论坛上面有个应用可以参考下:
//三个风机阀,一个水阀,Water_Valve为水阀,Low_Speed_Valve为低速,Medium_Speed_Valve为中速,High_Speed_Valve为高速
sbit Water_Valve=P1^3;
sbit Low_Speed_Valve=P1^1;
sbit Medium_Speed_Valve=P1^4;
sbit High_Speed_Valve=P1^2;
//电源开关引脚
sbit P2_1=P2^1;
//电压反馈,低电平表示按键有效
sbit KEY1_Vin_F=P2^2;
出自T5L(TC040及TC041)温控器开发资料补充20190801
http://inforum.dwin.com.cn:20080/forum.p ... =394&extra=page%3D1
回复

使用道具 举报

45

主题

254

回帖

3617

积分

论坛元老

Rank: 8Rank: 8

积分
3617
发表于 2019-12-18 12:30:43 | 显示全部楼层
本帖最后由 舞指飞扬 于 2019-12-18 13:12 编辑
wuchao11 发表于 2019-12-18 11:26
#define DATAOUT(x)  GPIOB->ODR=GPIOB->ODR&0x00FF|xODR&0xFF0F|x

///#define DATAOUT(x)  GPIOB->ODR=GPIOB->ODR&0x00FF|x<<8       //显示数据输出                   PB8~PB15
//#define CEOUT(x)    GPIOA->ODR=GPIOA->ODR&0xFF0F|x<<4       //138片选数据输出                PA4~PA7
////pb8-pb15改成p3.3 p3.2  p2.2-p2.7 怎么修改啊
////pa4-pa7 改成 p1.5-p1.6 p2.0-p2.1
      
PORTDRV=0x01;//IO等效电阻411,+-8MA
P1MDOUT=0xFF;//允许输出

P2MDOUT=0xFF;//允许输出
P3MDOUT=0xFF;//允许输出

void  DATAOUT(u8   x)
{u8 vp33,vp32,vp22,vp23,vp24,vp25,vp26,vp27,vp3,vp2,m,n;
vp33=    (x   &  (1<<0))>>0;
vp32=   ( x   &  (1<<1))>>1;
vp22=   ( x   &  (1<<2));
vp23=   ( x   &  (1<<3));
vp24=   ( x   &  (1<<4));
vp25=   ( x   &  (1<<5));
vp26=   ( x   &  (1<<6));
vp27=   ( x   &  (1<<7));
vp2=0;vp2=vp22+vp23+vp24+vp25+vp26+vp27;
vp3=0;vp3=(vp32<<2)+(vp33<<3);m=vp2|0x03;
n= vp3| 0xf3;  
P2|=vp2;
P2&=m;
P3|=vp3;
P3&=n;   
}


void CEOUT(u8   x)
{u8 vp15,vp16,vp20,vp21,m,n;
vp15=    (x   &  (1<<0))>>0;
vp16=   ( x   &  (1<<1))>>1;
vp20=   ( x   &  (1<<2))>>2;
vp21=   ( x   &  (1<<3))>>3;
vp2=0;vp2=   (vp20<<0)+  (vp21<<1 )   ;
vp1=0;vp1=(vp15<<5)+(vp16<<6);m=vp1|0x9f;
n=vp2|0xFC;

P1|=vp1;
P1&=m    ;

P2|=vp2;
P2&=n;
}

















回复

使用道具 举报

4

主题

4

回帖

31

积分

新手上路

Rank: 1

积分
31
 楼主| 发表于 2019-12-18 13:56:12 | 显示全部楼层
舞指飞扬 发表于 2019-12-18 12:30
///#define DATAOUT(x)  GPIOB->ODR=GPIOB->ODR&0x00FF|xODR&0xFF0F|x

大佬 我有很多看不懂是什么意思 能不能帮我注释一下 万分感谢
回复

使用道具 举报

45

主题

254

回帖

3617

积分

论坛元老

Rank: 8Rank: 8

积分
3617
发表于 2019-12-18 14:56:11 | 显示全部楼层
wuchao11 发表于 2019-12-18 13:56
大佬 我有很多看不懂是什么意思 能不能帮我注释一下 万分感谢

就是把口线的值算好了,然后用四条指令推入口线输出,口线电平变化时差为四条指令时间,尽量减少电平异步时差。
//pb8-pb15改成p3.3 p3.2  p2.2-p2.7
//pa4-pa7 改成 p1.5-p1.6 p2.0-p2.1
本身上面的定义就给编程和性能带来很大的影响。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-7-10 10:50 , Processed in 0.037501 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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