本帖最后由 xyzjacky 于 2017-9-13 14:08 编辑

有两个函数,都是使用库函数GPIO_WriteBit(注意添加其所在的头文件,#include "stm32f10x_gpio.h"),以并口方式进行8位写操作。

/*************************************************************************************

parallel_wrdata1:此函数是用于IO口编号的低位对应于数据的LSB位

入口参数:

*GPIOtypex:GPIO的类型,如:GPIOA,GPIOB,使用时可用GPIO_TypeDef*对其强制转换一下

GPIOnum:数据LSB位对应的IO编号,如GPIO_Pin_0,使用时注意不要越界了。

pdata:写入的并口数据

**************************************************************************************/

void parallel_wrdata1(void *GPIOtypex, INT16U GPIOnum,  INT8U pdata)

{

INT8U i,j = GPIOnum;

for(i=0;i<8;i++)

{

if(pdata&0x01)

{

GPIO_WriteBit(GPIOC, j<

}

else

{

GPIO_WriteBit(GPIOC, j<

}

pdata = pdata >> 1 ;

}

}

/*************************************************************************************

parallel_wrdata2:此函数是用于IO口编号的低位对应于数据的MSB位

入口参数:

*GPIOtypex:GPIO的类型,如:GPIOA,GPIOB,使用时可用GPIO_TypeDef*对其强制转换一下

GPIOnum:数据LSB位对应的IO编号,如GPIO_Pin_7,使用时注意不要越界了。

pdata:写入的并口数据

**************************************************************************************/

void parallel_wrdata2(void *GPIOtypex, INT16U GPIOnum,  INT8U pdata)

{

INT8U i,j = GPIOnum;

for(i=0;i<8;i++)

{

if(pdata&0x01)

{

GPIO_WriteBit(GPIOC, j>>i ,Bit_SET );

}

else

{

GPIO_WriteBit(GPIOC, j>>i ,Bit_RESET );

}

pdata = pdata >> 1 ;

}

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐