本帖最后由 哀歌与世无争 于 2018-2-22 12:40 编辑 STM32CubeMX设置PC13和PA1为推挽输出,速度50M,用LL库生成的代码如下:
PC13被初始化成模拟输入了,而PC5没有设置却变成了推挽输出了。 PA1倒是没有错误,GPIOA寄存器如图: 总结: 后面又试了几个引脚,发现用LL库高位的引脚(GPIO8-15)初始化会有问题,像PC13,PB13这样的高位引脚,设置后实际改变的是对应低位的引脚PC5和PB5,而想要配置的引脚却变成其他模式了。如果初始化是低位的引脚(GPIO0-7)不会有错误,像PA1,PB1就能被正确初始化。 大家有没有遇到这样的问题呢? |
求助:PMSM电机编码器线数(分辨率)为80000线,超过MCSDK5.4.8软件所能设置的最大线数65535,请问如何解决
基于stm32h743IIK,在cubeai上部署keras模型,模型输出结果都是同一组概率数组,一点也搞不明白,看社区也有相同的问题,但没有解决方案
STM32CubeIDE MyST登录出现Proxy Error
软件下载速度太慢了
STM32G473VET6同时使用6个片上放大器(OPAMP)的PGA加外部偏置模式,引脚位置让差分信号走线分离,信号有无较大影响?
如何设计硬件R-2R梯形网络电路,得以输出16bit的分辨率?
stm32编码器模式3采1200ppr的编码器转一圈为啥是计数器是2400不是4800?
STM32CubeMX生成FreeRTOS MDK版本无法使用AC6编译器
STM32 VS Code Extension卡在导入工程
H7系列无法配置MPU
环境STM32CubeMX 4.24.0,MDK 5.24
CUBEMX HAL stm32f030 主程序while发送,中断接收1个字节,有几率无法再开启中断接收。
主程序while只是打印几个变量值
printf("\r\n-----RcvCount=%8d , ErrCount=%8d RcErrCount=%8d\r\n",RcvCount,ErrCount,RcErrCount);
HAL_Delay(100);
中断接收 HAL_UART_Receive_IT(&huart1,(uint8_t*) &Uart1_Rx_Byte,1); //再次接收1个字符
里面什么都不干。
pc机100ms发送 0123456789. 一下就开始出现接收溢出,串口忙接收中断无法再开启启动的问题了
就这么简单的中断接收消息,主线程发送消息,一两百个字节就错误的无法用了。STM的库还能放心用在项目上?纯粹是熟悉和玩玩的摆设,能动不能用。
你的STM32F1是哪个系列的,具体什么型号?F1的型号太多了。
感觉不至于出现这样的问题呀,发个工程上来瞧瞧
LL库没玩过,不过我常用的F103系列中,印象是PC13速度不超过2MHZ,具体出自哪里,一时没找到。
我用HAL是好的,前几天刚测试过“YD-STMF1系列核心板”,就是某宝上出现最多的那个STM32F103C8T6小板板,上面的LED用的就是PC13,闪灯灯好着呢。
HAL库出来很久了,用了没啥问题,STM32F1的LL库最近才出的,发现有这个现象才来问问大家的。
没有质疑,只是有疑问,有什么不当的地方请指出
不好搞,用了很多宏,有的还是编译器的关键字,晦涩难懂,最好等官方完善了。还是标准库好,简单的封装,使用稳定。现在为了可视化出了cubemx和这两个库,碎片化严重。
可以试着修复一下嘛~我直接改pinpos并不能正确初始化,后面还有一个currenpin,应该是指向正确的寄存器位置,然后我干脆寄存器初始化了,后面又发现USART那似乎也存在问题,这里用似乎哈,昨晚太晚没深究。
currenpin后面有个 LL_GPIO_SetPinMode(GPIOx, currentpin, GPIO_InitStruct->Mode)函数,经过这个函数后寄存器的值就开始不对了,跟踪进去里面有个
MODIFY_REG(*pReg, ((GPIO_CRL_CNF0|GPIO_CRL_MODE0) << (POSITION_VAL(Pin) * 4U)), (Mode << (POSITION_VAL(Pin) * 4U)));
看名字是在修改寄存器的值,但是这个东西全是用宏定义拼起来的,太多宏太恶心了,实在看不下去了。
sssssssssssssssssss