
stm8/stm32编程
文章平均质量分 82
主要记录使用stm8/stm32遇到的一些问题
k7arm
这个作者很懒,什么都没留下…
展开
-
未使用CMSIS之前的stm32标准库中SystemHandler的宏定义
其他的宏定义也是类似。如名字所示,CMSIS中主要是处理跟cortex-m相关的,STM32F10x_StdPeriph_Driver里面存放的标准外设相关的。第一眼看到这些宏定义的值很奇怪,也没啥规律,既然叫Handler,是不是和地址有关,但是地址也怎么给定义成固定值了,也违反常理啊。同理,当将SystemHandler_SysTick用在不同的NVIC_xxx()时,会使用他不同位域的值,也对应着不同的寄存器。附:AN2953文档,描述如何将没有使用CMSIS的标准库移植到使用了CMSIS的标准库。原创 2024-08-31 23:32:51 · 1311 阅读 · 0 评论 -
iar Error[Li005] no definition for "assert_failed"
出现这个问题是因为在stm8s_conf.h中只声明了函数接口,但是没有地方实现它,所以找个地方写个空函数就行了。常用的方法是在main.c中写个空函数。` Error[Li005]: no definition for “assert_failed” [referenced from D:\zw\src\stm8\nrf24l01_gpio\send\Debug\Obj\stm8s_gpio.o]原创 2017-05-12 10:46:32 · 4336 阅读 · 4 评论 -
The Flash Memory Read-out protection option must be disabled for debug.
发生上面这个错误还挺奇怪的。 因为之前我使用iar stm8的版本下载和调试程序都没有问题,只是换了一块stm8的板子,然后再下载程序就出现标题的提示了。在网上搜了一圈后都说需要使用stvp先来解锁一下才能用。于是我就照着做了,结果还真是能用了,这篇文章就是记录一下这个过程。 去官网下载完启动stvp,先选择对应的硬件板子。我的是stm8s103f3p6,用的是st-link. 注意把图中画红原创 2017-06-06 22:10:17 · 2255 阅读 · 0 评论 -
IAR调试stm8的优化设置
本来想使用iar的debug功能,通过st-link调试stm8板子,查看一下变量的值,结果死活看不到结果有变化,一直显示不可用,当时我就纳闷了,这他娘的是咋回事? 没办法,上网搜吧,于是发现,原来是跟编译的优化级别有关系,默认的优化级别是low,把它改成None,然后单步就能看到变量的值了。调整完优先级就可以看到变量的值了。原创 2017-06-06 22:19:19 · 5706 阅读 · 0 评论 -
stm8s103f3p6的延时函数
使用stm8s时本来期望能够产生1us精度的脉冲,但是调来调去也没能实现。目前的情况是使用内部16MHz的RC时钟源,然后给到timer4,再经 8分频产生一个25us的中断,我能搞出来的最小中断周期是15us左右,考虑到那不是一个很好的整数,主要是当要延时整数比如100,1000时没办法除尽,所以就只好取25us为一个最小单位了。如果有人能用定时器产生1us的脉冲请指点一下。多谢。 下面上代码吧原创 2017-06-25 18:19:19 · 7176 阅读 · 1 评论