- 博客(4)
- 收藏
- 关注
原创 cubemax不定长数据串口接收以及串口重定向
该语句将中断地检测串口总线是否空闲,如果数据传输完成后,总线便会空闲,从而进入回调函数(void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)),由此避开了定长接受的问题。我这里的消息队列长度为1,单个数据内存占100个字节,所以osMessageQueuePut函数将100个字符放入消息队列,接受时也是将100个字节取出。该回调函数被调用时,会传回该数据流的长度,在数据流末尾处加入‘\0’,形成合法的字符串,
2024-05-02 21:02:58 561 1
原创 cubemax中freertos版本V1与版本V2的区别-消息队列
值得注意的是在cubemax设置消息队列单个数据所占内存(item size)时,V1版本只能指定特定数据类型,比如char形(item size=char),规定只能单个数据占有一个字节。而V2版本在此处较为灵活,item size可以直接指定占有多少字节,如item size=100,则单个数据占有100个字节。freertos版本V1的消息队列函数为xQueueSend()与xQueueReieve()函数。版本V2的函数实际上就是在版本V1的基础上进行进一步的封装。
2024-05-02 20:07:19 740
原创 oled显示-硬件i2c及软件模拟i2c
将oled.c文件中Write_IIC_Command()函数和Write_IIC_Data()函数中的HAL_I2C_Mem_Write()函数第一个参数对应自己设置的i2c句柄改变。将#define analog设置为1,再将HAL_GPIO_WritePin()参数修改为对应的io口即可实现。接下来在自己的需要调用函数的地方包含oled.h文件使用oled.h中的函数即可。我这里选择SCL的io口为PA8,SDA的io口为PA9。软件模拟有点在于不像硬件i2c一样拘泥于指定的io口。
2024-04-29 23:15:03 473
原创 freertos创建的任务函数被放在了main文件中
问题:在使用cubemax过程中,freertos创建的任务函数被放在了main文件中。在project manager中勾选这一项,如图所示。为每一个外设创建一个.c/.h文件。
2024-04-27 18:05:19 140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人