菜鸟求助:如何将一个uint32_t保留低8位变成一个uint8_t?

2019-07-14 23:47发布

比如 :
uint32_t data1;,
uint8_t  data2;
data2 = data1;
是不是就将最低的8位传送给了 data2??
如果要传送次低的8位:
data2 = data1>>8;
就可以了?????
求助


extern void GPIO_OUT(uint32_t Output)
{
        uint16_t temp1,temp2;
        temp1=(uint16_t)Output;
        temp2=(uint16_t)Output;
        GPIOA->ODR = temp1;//保留低8位
        GPIOB->ODR = temp2;//保留高8位
        GPIOC->ODR = (uint16_t)(Output>>16);//保留高16位
}
运行一下只有PC的16个端口能正常输出
所有的GPIO都是推挽输出,初始化都没有问题,已经试验过了
拜托了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
ballack_linux
1楼-- · 2019-07-15 11:37
只要加个仿真调试下,看下变量值就行了
建议  还是用显示转换的比较好
youzizhile
2楼-- · 2019-07-15 12:14
2楼回答的正确,一般都是这样处理的
liminbo
3楼-- · 2019-07-15 14:19
 精彩回答 2  元偷偷看……

一周热门 更多>