完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1. 一般stm32用cube生成代码都是默认为8bit,这个奇葩竟然默认是7bit,也怪我自己没仔细去看了,调了一下午才发现,所以大家使用cube时也要多留意它的默认配置,不要以为自己用熟练了就不仔细看了。
2. 使用cube生成的hal库写程序最烦的就是写串口中断 我用cube也用了好多年了,但串口中断函数从来没用过hal库里面的什么callback函数,感觉效率太低,最关键是还不好用。 但自己写中断,不换平台还好,单片机的类型一换,中断程序就要重新搞,各种开关中断,清标志的函数都变了,下边附上我使用G070CB时写的中断程序。 //使用cube初始化串口后,开启接收中断 __HAL_UART_ENABLE_IT(&huart3, UART_IT_RXFNE | UART_IT_RXNE);//(RX FIFO 不空 )或 (RX不空) //进入中断后,使用这几句清除中断标志 __HAL_UART_GET_FLAG(&huart3, UART_FLAG_RXNE | UART_FLAG_RXFNE); __HAL_UART_GET_IT_SOURCE(&huart3, UART_IT_RXNE | UART_IT_RXFNE); __HAL_UART_GET_IT(&huart3, UART_IT_RXNE | UART_IT_RXFNE); //接下来直接接收数据就ok了(跟我们的51单片机的接收一样,来一个字节接收一个字节) RxBuff[RxIndex] = huart3.Instance->RDR;//注意这个是RDR,以前用的大部分都是DR; //顺便吐槽两句,hal库的什么receive_IT,还有什么Callback,真心不好用 |
|
|
|
只有小组成员才能发言,加入小组>>
3209 浏览 9 评论
2896 浏览 16 评论
3402 浏览 1 评论
8844 浏览 16 评论
3997 浏览 18 评论
9627浏览 3评论
1004浏览 3评论
520浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
523浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2250浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-30 04:02 , Processed in 1.281126 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号