谁有stm32 can例程F030的相关例程

21ic官方微信-->
后使用快捷导航没有帐号?
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
请完成以下验证码
查看: 3987|回复: 22
stm32f030串口使用的一点心得
&&已结帖(0)
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
& && & 这几天在做一个案子,使用到了F0 USART收发功能。有些小伙伴们说F0不能像F1那样长期开放TC中断,否则将会卡死在中断里,应该在需要的时候开启,用完再关闭。事实真的这样吗?其实不然,那下面我来说说我是如何实现一次性初始化设置的。先来一段初始化代码:
void initUart(void)
& && &&&USART_InitTypeDef&&USART_InitS
& & & & GPIO_InitTypeDef& & GPIO_InitS
& & & & NVIC_InitTypeDef& & NVIC_InitS
& && &&&RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
& & & & RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
& & & & /* USART2 Pins configuration ******/&&
& & & & /* Connect pin to Periph */
& & & & GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1);
& && &&&GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_1);&&
& & & & /* Configure pins as AF pushpull */
& & & & GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
& & & & GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
& & & & GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& & & & GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
& & & & GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
& & & & GPIO_Init(GPIOA, &GPIO_InitStructure);
& & & & USART_InitStructure.USART_BaudRate = 9600;
& & & & USART_InitStructure.USART_WordLength = USART_WordLength_8b;
& & & & USART_InitStructure.USART_StopBits = USART_StopBits_1;
& & & & USART_InitStructure.USART_Parity = USART_Parity_No;
& & & & USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_N
& & & & USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
& && & USART_Init(USART1,&USART_InitStructure);& & & &
& && & USART_ClearFlag(USART1,USART_FLAG_TC);
& & & & USART_ITConfig(USART1,USART_IT_TC,ENABLE);
& & & & USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
& & & & USART_Cmd(USART1,ENABLE);& && &//使能串口
& & & & NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
& & & & NVIC_InitStructure.NVIC_IRQChannelPriority = 1;
& & & & NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
& & & & NVIC_Init(&NVIC_InitStructure);& &&&//使能串口中断
& && & 在初始化代码中,使能串口和使能串口中断这两个的顺序不要搞反了,否则如果你已允许了TC中断,程序将会一直进入中断,既然在中断中调用USART_ClearFlag(USART1,USART_FLAG_TC)也无济于事。经过分析发现,数据手册中提到Set the TE bit in USARTx_CR1 to send an idle frame as first transmission。也就是说一旦使能了TE,芯片会自动地发出了一次数据,并会引起TC_FLAG置位,而想要清除该flag的先决条件是使能了串口。因此,假如在使能串口钱已经使能了串口中断,那程序就一直进入中断了。这也是小伙伴们疑惑的地方,误以为TC是无法清除的。
& && & 完成了初始化,那么只要把需要发送的数据填写到发送缓冲区,并且调用一次USART_SendData()把第一个字节发送出去之后,剩下的就交给中断处理啦!So easy!
void USART1_IRQHandler(void)& & & &&&
& & if (USART_GetFlagStatus(USART1, USART_FLAG_TC) == SET)& & {
& & & & USART_ClearFlag(USART1,USART_FLAG_TC);& &//清除TC_FLAG
& && &&&if(gbyteUartTxIndex & gbyteUartTxLenght)
& && && && &USART_SendData(USART1,gbyteSendBuf[gbyteUartTxIndex++]);
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:38.00
主题帖子积分
谢谢分享;
深圳游名智能科技有限公司
游名电子工程师群1:;
物联网技术交流群:;
主题帖子积分
助理工程师, 积分 1777, 距离下一级还需 223 积分
助理工程师, 积分 1777, 距离下一级还需 223 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1777, 距离下一级还需 223 积分
助理工程师, 积分 1777, 距离下一级还需 223 积分
也就是说一旦使能了TE,芯片会自动地发出了一次数据,并会引起TC_FLAG置位,而想要清除该flag的先决条件是使能了串口。因此,假如在使能串口钱已经使能了串口中断,那程序就一直进入中断了。这也是小伙伴们疑惑的地方,误以为TC是无法清除的。
受教了,学习了
主题帖子积分
中级工程师, 积分 4040, 距离下一级还需 960 积分
中级工程师, 积分 4040, 距离下一级还需 960 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
中级工程师, 积分 4040, 距离下一级还需 960 积分
中级工程师, 积分 4040, 距离下一级还需 960 积分
原来这么多学问,受益匪浅
主题帖子积分
初级工程师, 积分 2026, 距离下一级还需 974 积分
初级工程师, 积分 2026, 距离下一级还需 974 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2026, 距离下一级还需 974 积分
初级工程师, 积分 2026, 距离下一级还需 974 积分
想要清除flag的先决条件是使能了串口
主题帖子积分
初级工程师, 积分 2343, 距离下一级还需 657 积分
初级工程师, 积分 2343, 距离下一级还需 657 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2343, 距离下一级还需 657 积分
初级工程师, 积分 2343, 距离下一级还需 657 积分
主题帖子积分
初级工程师, 积分 2046, 距离下一级还需 954 积分
初级工程师, 积分 2046, 距离下一级还需 954 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2046, 距离下一级还需 954 积分
初级工程师, 积分 2046, 距离下一级还需 954 积分
USART_ClearFlag(USART1,USART_FLAG_TC);& &//清除TC_FLAG
主题帖子积分
助理工程师, 积分 1967, 距离下一级还需 33 积分
助理工程师, 积分 1967, 距离下一级还需 33 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1967, 距离下一级还需 33 积分
助理工程师, 积分 1967, 距离下一级还需 33 积分
在初始化代码中,使能串口和使能串口中断这两个的顺序不要搞反了
主题帖子积分
初级工程师, 积分 2413, 距离下一级还需 587 积分
初级工程师, 积分 2413, 距离下一级还需 587 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2413, 距离下一级还需 587 积分
初级工程师, 积分 2413, 距离下一级还需 587 积分
串口被占用了怎么办,能重映射吗
主题帖子积分
初级工程师, 积分 2418, 距离下一级还需 582 积分
初级工程师, 积分 2418, 距离下一级还需 582 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2418, 距离下一级还需 582 积分
初级工程师, 积分 2418, 距离下一级还需 582 积分
楼主这个串口中断响应后会不会自己关闭
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
楼主这个串口中断响应后会不会自己关闭
不会,每次进中断清掉标志位就可以了
主题帖子积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
想要清除flag的先决条件是使能了串口?这不对吧
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
想要清除flag的先决条件是使能了串口?这不对吧
我仿真验证过,如果不使能串口,会一直不断进入中断,清除flag也不管用,然后调出寄存器,手工勾上UE就一切正常了。然后代码初始化的时候顺序做了调整,也没问题了。
主题帖子积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
勾上UE就一切正常了,这个UE是指的什么内容,哪个选项?
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
本帖最后由 changmiao 于
14:11 编辑
勾上UE就一切正常了,这个UE是指的什么内容,哪个选项?
UE是USARTx_CR1寄存器中的最低位——UE: USART enable,USART_Cmd(USART1,ENABLE)的效果就是把它置位, 请仔细看手册,谢谢~~
主题帖子积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
高级工程师, 积分 5590, 距离下一级还需 2410 积分
非常感谢楼主的悉心教诲,终于知道了UE是USARTx_CR1寄存器中的最低位——UE: USART enable,USART_Cmd(USART1,ENABLE)的效果就是把它置位
主题帖子积分
助理工程师, 积分 1493, 距离下一级还需 507 积分
助理工程师, 积分 1493, 距离下一级还需 507 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1493, 距离下一级还需 507 积分
助理工程师, 积分 1493, 距离下一级还需 507 积分
请教一下,在看资料时,发现有的说中断产生时会使中断标志位置1,但又说清除中断标志位是向寄存器里写1,怎么回事啊
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级技术员, 积分 500, 距离下一级还需 500 积分
高级技术员, 积分 500, 距离下一级还需 500 积分
请教一下,在看资料时,发现有的说中断产生时会使中断标志位置1,但又说清除中断标志位是向寄存器里写1,怎 ...
置一是由硬件完成,而写1清除中断标志位是由用户软件清除,不清除的后果就是硬件检测到标志位置一不断地进入中断。至于是写1还是写0甚至只要读某个特定寄存器(例如有些芯片串口接收中断发生时读一次接收寄存器即可清除)达到清除的目的,要看数据手册,不同的厂商可能不一样。
主题帖子积分
助理工程师, 积分 1493, 距离下一级还需 507 积分
助理工程师, 积分 1493, 距离下一级还需 507 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1493, 距离下一级还需 507 积分
助理工程师, 积分 1493, 距离下一级还需 507 积分
置一是由硬件完成,而写1清除中断标志位是由用户软件清除,不清除的后果就是硬件检测到标志位置一不断地进入中断。
那如果硬件置1,进入中断,清中断是不是要再写入1
主题帖子积分
中级工程师, 积分 4798, 距离下一级还需 202 积分
中级工程师, 积分 4798, 距离下一级还需 202 积分
主题帖子积分
专家等级:结帖率:100%打赏:9.00受赏:9.00
主题帖子积分
中级工程师, 积分 4798, 距离下一级还需 202 积分
中级工程师, 积分 4798, 距离下一级还需 202 积分
&&在初始化代码中,使能串口和使能串口中断这两个的顺序不要搞反了,否则如果你已允许了TC中断,程序将会一直进入中断,既然在中断中调用USART_ClearFlag(USART1,USART_FLAG_TC)也无济于事。。很赞同楼主的话。
技术领袖奖章
人才类勋章
时间类勋章
坚毅之洋流
发帖类勋章
荣誉元老奖章
等级类勋章求一份STM32F030的中文版资料 - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 1243|回复: 8
求一份STM32F030的中文版资料
在线时间200 小时
ST金币1121
主题帖子好友
金牌会员, 积分 3194, 距离下一级还需 1806 积分
金牌会员, 积分 3194, 距离下一级还需 1806 积分
分享一份STM32F030的英文版资料
同求一份STM32F030的中文版资料
17:08 上传
点击文件名下载附件
1.53 MB, 下载次数: 71
在线时间290 小时
主题帖子好友
金牌会员, 积分 4020, 距离下一级还需 980 积分
金牌会员, 积分 4020, 距离下一级还需 980 积分
习惯看英文了
2.gif (1.83 KB, 下载次数: 0)
09:09 上传
在线时间155 小时
主题帖子好友
你可以去网上找一下清风的资料。
在线时间106 小时
ST金币1268
主题帖子好友
金牌会员, 积分 1544, 距离下一级还需 3456 积分
金牌会员, 积分 1544, 距离下一级还需 3456 积分
有份051的中文吧
在线时间109 小时
主题帖子好友
金牌会员, 积分 1627, 距离下一级还需 3373 积分
金牌会员, 积分 1627, 距离下一级还需 3373 积分
对着051的中文资料看
在线时间73 小时
主题帖子好友
金牌会员, 积分 1095, 距离下一级还需 3905 积分
金牌会员, 积分 1095, 距离下一级还需 3905 积分
这个论坛上应该有啊
在线时间200 小时
ST金币1121
主题帖子好友
金牌会员, 积分 3194, 距离下一级还需 1806 积分
金牌会员, 积分 3194, 距离下一级还需 1806 积分
有看到清风的资料,谢谢楼上
在线时间129 小时
主题帖子好友
金牌会员, 积分 1764, 距离下一级还需 3236 积分
金牌会员, 积分 1764, 距离下一级还需 3236 积分
对stm32F042f4非常感兴趣就是买不到。
在线时间23 小时
主题帖子好友
中级会员, 积分 240, 距离下一级还需 260 积分
中级会员, 积分 240, 距离下一级还需 260 积分
习惯看英文就好了
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered bystm32f030例程|stm32f103r8t6 pdf|stm32f051r8 问题多多 - stm32f030r8哪种好
您好,stm32f030r8专卖店为您提供最新stm32f030r8,stm32f030例程,stm32f103r8t6 pdf,stm32f051r8 问题多多以及网上stm32f030r8哪种最好!
【 stm32f030r8 第1名 】
【 stm32f030r8 第2名 】
【 stm32f030r8 第3名 】
您是否在找:
上一篇:  下一篇:查看: 563|回复: 7
请问给位老师:要使用STM32F030xxx系列芯片 用MDK哪个版本才好?
主题帖子精华
初级会员, 积分 173, 距离下一级还需 27 积分
在线时间2 小时
请问给位老师:要使用STM32F030xxx系列芯片 用MDK哪个版本才好? 因为MDK4的版本 设备选项只有STM32F051xxx系列
主题帖子精华
金牌会员, 积分 1142, 距离下一级还需 1858 积分
在线时间285 小时
5以上貌似就可以,目前我用的是5.12,之前做过030,可以用。
主题帖子精华
初级会员, 积分 173, 距离下一级还需 27 积分
在线时间2 小时
回复【2楼】键盘侠:
---------------------------------
问题来了。&&&&&将原来MDK4.7的工程&用MDK5.11打开&&&&出现7条&&C:\Keil_v5\ARM\Inc\ST\STM32F0xx\stm32f0xx.h(83):&warning:&&#47-D:&incompatible&redefinition&of&macro&"STM32F051"的警告&这是为啥?
主题帖子精华
金牌会员, 积分 1142, 距离下一级还需 1858 积分
在线时间285 小时
回复【3楼】酷爱STM32:
-------------------------------
1.先看一下自己的keil有没有下载st芯片的相关配置
2.芯片选型是否正确
主题帖子精华
初级会员, 积分 173, 距离下一级还需 27 积分
在线时间2 小时
回复【4楼】键盘侠:
---------------------------------
f1xx和f0xx的芯片都下载了
主题帖子精华
金钱112118
在线时间799 小时
回复【3楼】酷爱STM32:
---------------------------------
取消C/C++选项的STM32F051定义试试.
貌似是你定义了2次STM32F051宏
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 173, 距离下一级还需 27 积分
在线时间2 小时
试过了&不是
主题帖子精华
金钱112118
在线时间799 小时
回复【7楼】酷爱STM32:
---------------------------------
&那就不知道啥情况了,呵呵
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
Powered by查看: 5407|回复: 4
谁有STM32F030C8T6的例程
主题帖子精华
初级会员, 积分 80, 距离下一级还需 120 积分
在线时间0 小时
谁有STM32F030C8T6的例程
030跟051差不多一样,参考下固件库或者&青风带你学stm32f030
主题帖子精华
初级会员, 积分 71, 距离下一级还需 129 积分
在线时间2 小时
030跟051差不多一样,参考下固件库或者&青风带你学stm32f030
主题帖子精华
金钱112118
在线时间799 小时
没有。。。。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手上路, 积分 44, 距离下一级还需 6 积分
在线时间101 小时
c8t6的启动文件要用startup_stm32f0xx_md.s吧,但是我没有,只有startup_stm32f0xx_ld.s
哪个大神有,给发一个完整的吧,
主题帖子精华
新手上路, 积分 19, 距离下一级还需 31 积分
在线时间0 小时
代理兆易创新(GD)32-bit ARM架构,Cortex-M3、M4内核MCU,可提供技术支持等服务;
GD32F130系列 M3内核与STM32F030/051系列,硬件pin to pin兼容;烧录器、寄存器、开发环境完全兼容;
欢迎来电咨询探讨,邱先生 电话:136 ;
Powered by

我要回帖

更多关于 hc05蓝牙模块51例程 的文章

 

随机推荐