STM32/STM8技术william hill官网
直播中

刘恩彤

7年用户 201经验值
私信 关注
[问答]

请问怎么把生成的uint32_t转为uint8_t?

uint32_t怎么转为uint8_t?

芯片:STM32f412zg
目的:用随机数生成器,得到随机数,然后发送到串口。

随机数生成函数是
HAL_StatusTypeDef    HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit)



串口发送函数是
HAL_StatusTypeDef     HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t timeout)


问题:请问怎么把生成的uint32_t *转化为  uint8_t *??
谢谢。

回帖(6)

袁富存

2019-1-23 07:05:01
把uint32_t 分成4个uint8_t
举报

卢家辉

2019-1-23 07:22:22
还需要保留原来的数据啊,那就自己写一个函数,转换呗!!!!
举报

李敏

2019-1-23 07:38:21
直接强制转换,转换后数据长度为四个字节,注意是小端模式
举报

李维嘉

2019-1-23 07:46:27
指针随便转,只要记住指针就是地址,STM32中地址都是32位的,并且Flash和RAM统一寻址,没有区别。
uint32_t * 指针加一的话,地址增4; uint8_t *指针加一的话,地址增1,仅此而已。
举报

李维嘉

2019-1-23 07:51:53
本帖最后由 toofree 于 2017-6-19 23:57 编辑

举报

孙婷婷

2019-1-23 08:11:07
printf的话可以直接用输出32位的,库函数输出的时候,入口些微HAL_UART_Transmit(uart1,&a,4,1000);
举报

更多回帖

发帖
×
20
完善资料,
赚取积分