c++ 删除末尾字符
需要删除最后3个字符:
```c++ std::string projectName; foreach (std::string s, sampleNameVector) { projectName += s + " + "; } projectName.erase(projectName.end() - 3, projectName.end());
需要删除最后3个字符:
```c++ std::string projectName; foreach (std::string s, sampleNameVector) { projectName += s + " + "; } projectName.erase(projectName.end() - 3, projectName.end());
linux 字符设备驱动学习。
构建根文件系统学习笔记
stm32f429使用 stm32cube 自动生成 eth 代码的时候,运行出现 FLASH_FLAG_PGSERR 错误。 见过调试发现,MX_ETH_Init 中没有对指针进行赋值,就直接写入了,所以出错。 进行下面的修改。
/* USER CODE BEGIN 0 */
static uint8_t macAddr[6];
void MX_ETH_VarInit(void)
{
heth.Init.MACAddr = macAddr;
}
/* USER CODE END 0 */
/* USER CODE BEGIN Prototypes */
void MX_ETH_VarInit(void);
/* USER CODE END Prototypes */
/* USER CODE BEGIN SysInit */
MX_ETH_VarInit();
/* USER CODE END SysInit */
使用 stm32cubeide 实现 uart 基础上的 iap 功能。
最近在调试 android,使用 串口半双工模式接收数据,碰到的问题是 unistd 中的 read 是block的,怎样才能超时退出。 刚开始找到的资料说是 c_cc[VMIN] = 0, c_cc[VTIME] = 10; 这样就能配置为 1s 超时了。但是实际上并不能够达到超时退出的功能。 后来经过进一步的资料查找,发现需要使用 下面的方法才能实现功能, VTIME 的配置好像没那么重要。 ```c++ struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 100000; retval = select(fd + 1, &rfds, NULL, NULL, &timeout);
参考: https://stackoverflow.com/questions/10522277/how-can-i-implement-timeout-for-read-when-reading-from-a-serial-port-c-c
https://linux.die.net/man/2/select
http://man7.org/linux/man-pages/man2/select.2.html
https://blog.mbedded.ninja/programming/operating-systems/linux/linux-serial-ports-using-c-cpp/#reading
jni 用来连接 java 和 c。
c++ 学习中记录下来的一些要点,方便以后复习。
android 使用中学习到很多新的东西,记录下来防止忘记。