不用库的情况下,如何实现STM8S单片机I/O口的按位操作

2019-07-15 18:22发布

很多新手在不用STM库函数的情况下,不知道如何多STM8的I/O口进行按位操作,下面把我刚开始用STM8的经验跟大家分享一下!
  1. <p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/*----------------------------------------------------------------------------*/
  2. //IO bits define</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port A data output bits*/
  3. volatile _Bool PA_ODR_0  @PA_ODR:0;
  4. volatile _Bool PA_ODR_1  @PA_ODR:1;
  5. volatile _Bool PA_ODR_2  @PA_ODR:2;
  6. volatile _Bool PA_ODR_3  @PA_ODR:3;
  7. volatile _Bool PA_ODR_4  @PA_ODR:4;
  8. volatile _Bool PA_ODR_5  @PA_ODR:5;
  9. volatile _Bool PA_ODR_6  @PA_ODR:6;
  10. volatile _Bool PA_ODR_7  @PA_ODR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port A data input bits*/
  11. volatile _Bool PA_IDR_0  @PA_IDR:0;
  12. volatile _Bool PA_IDR_1  @PA_IDR:1;
  13. volatile _Bool PA_IDR_2  @PA_IDR:2;
  14. volatile _Bool PA_IDR_3  @PA_IDR:3;
  15. volatile _Bool PA_IDR_4  @PA_IDR:4;
  16. volatile _Bool PA_IDR_5  @PA_IDR:5;
  17. volatile _Bool PA_IDR_6  @PA_IDR:6;
  18. volatile _Bool PA_IDR_7  @PA_IDR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port B data output bits*/
  19. volatile _Bool PB_ODR_0  @PB_ODR:0;
  20. volatile _Bool PB_ODR_1  @PB_ODR:1;
  21. volatile _Bool PB_ODR_2  @PB_ODR:2;
  22. volatile _Bool PB_ODR_3  @PB_ODR:3;
  23. volatile _Bool PB_ODR_4  @PB_ODR:4;
  24. volatile _Bool PB_ODR_5  @PB_ODR:5;
  25. volatile _Bool PB_ODR_6  @PB_ODR:6;
  26. volatile _Bool PB_ODR_7  @PB_ODR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port B data input bits*/
  27. volatile _Bool PB_IDR_0  @PB_IDR:0;
  28. volatile _Bool PB_IDR_1  @PB_IDR:1;
  29. volatile _Bool PB_IDR_2  @PB_IDR:2;
  30. volatile _Bool PB_IDR_3  @PB_IDR:3;
  31. volatile _Bool PB_IDR_4  @PB_IDR:4;
  32. volatile _Bool PB_IDR_5  @PB_IDR:5;
  33. volatile _Bool PB_IDR_6  @PB_IDR:6;
  34. volatile _Bool PB_IDR_7  @PB_IDR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port C data output bits*/
  35. volatile _Bool PC_ODR_0  @PC_ODR:0;
  36. volatile _Bool PC_ODR_1  @PC_ODR:1;
  37. volatile _Bool PC_ODR_2  @PC_ODR:2;
  38. volatile _Bool PC_ODR_3  @PC_ODR:3;
  39. volatile _Bool PC_ODR_4  @PC_ODR:4;
  40. volatile _Bool PC_ODR_5  @PC_ODR:5;
  41. volatile _Bool PC_ODR_6  @PC_ODR:6;
  42. volatile _Bool PC_ODR_7  @PC_ODR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port C data input bits*/
  43. volatile _Bool PC_IDR_0  @PC_IDR:0;
  44. volatile _Bool PC_IDR_1  @PC_IDR:1;
  45. volatile _Bool PC_IDR_2  @PC_IDR:2;
  46. volatile _Bool PC_IDR_3  @PC_IDR:3;
  47. volatile _Bool PC_IDR_4  @PC_IDR:4;
  48. volatile _Bool PC_IDR_5  @PC_IDR:5;
  49. volatile _Bool PC_IDR_6  @PC_IDR:6;
  50. volatile _Bool PC_IDR_7  @PC_IDR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port D data output bits*/
  51. volatile _Bool PD_ODR_0  @PD_ODR:0;
  52. volatile _Bool PD_ODR_1  @PD_ODR:1;
  53. volatile _Bool PD_ODR_2  @PD_ODR:2;
  54. volatile _Bool PD_ODR_3  @PD_ODR:3;
  55. volatile _Bool PD_ODR_4  @PD_ODR:4;
  56. volatile _Bool PD_ODR_5  @PD_ODR:5;
  57. volatile _Bool PD_ODR_6  @PD_ODR:6;
  58. volatile _Bool PD_ODR_7  @PD_ODR:7;</span></p><p style="color: rgb(51, 51, 51); font-family: Tahoma, SimSun, Verdana, Arial; font-size: 12px; line-height: normal;"><span style="background-color: white;">/* Port D data input bits*/
  59. volatile _Bool PD_IDR_0  @PD_IDR:0;
  60. volatile _Bool PD_IDR_1  @PD_IDR:1;
  61. volatile _Bool PD_IDR_2  @PD_IDR:2;
  62. volatile _Bool PD_IDR_3  @PD_IDR:3;
  63. volatile _Bool PD_IDR_4  @PD_IDR:4;
  64. volatile _Bool PD_IDR_5  @PD_IDR:5;
  65. volatile _Bool PD_IDR_6  @PD_IDR:6;
  66. volatile _Bool PD_IDR_7  @PD_IDR:7;</span></p>
复制代码

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
芒果冰
1楼-- · 2019-07-15 22:28
直接操作寄存器,谢谢分享
阿信509
2楼-- · 2019-07-16 00:29
这个我还真没看懂呢!汗。。。
上官梦舞
3楼-- · 2019-07-16 04:22
一知半解。。。
Libraone
4楼-- · 2019-07-16 06:38
找对应口的地址,直接操作地址就好
linjiashengl
5楼-- · 2019-07-16 10:04
 精彩回答 2  元偷偷看……
穿云
6楼-- · 2019-07-16 12:37
毛病,发球啊毛病,发球啊

一周热门 更多>